2012/07/16: RSpecのオプション設定
2012/01/07: ルート設定でパラメーターにドット「.」を許可する
Railsのルート設定をなんとかして、下記のようにアクセスできるようにするためのメモです。
GETパラメータにメールアドレスを含ませたかったのですが、この例のように末尾のパラメータがドットを含む場合、何もしないとデフォルトで(.:format)が設定されているために「net」の部分がformatだと勘違いされたり、そもそもパラメーター内にドット「.」が許可されていなかったりしたので、そこら辺をなんとかするためのノウハウです。
まず、
で、デフォルトで設定されるオプションパラメータを無効にします。
次に、
で、ドット「.」を許可します。
最終的にこんな感じでOKでした。
参考
http://app.com/hoge/someone@mail.com
GETパラメータにメールアドレスを含ませたかったのですが、この例のように末尾のパラメータがドットを含む場合、何もしないとデフォルトで(.:format)が設定されているために「net」の部分がformatだと勘違いされたり、そもそもパラメーター内にドット「.」が許可されていなかったりしたので、そこら辺をなんとかするためのノウハウです。
まず、
:format=>false
で、デフォルトで設定されるオプションパラメータを無効にします。
次に、
:mail => /.*/
で、ドット「.」を許可します。
最終的にこんな感じでOKでした。
match 'hoge/:mail' => 'hoge#myaction', :via => 'get', :as => 'my_action', :format=>false, :mail => /.*/
参考
2012/01/07: Heroku Cedar でRails3がApplication Errorを吐く時
Heroku(Cedar)でRails3で作成したアプリケーションを動作させる時、ローカル環境ではOKなのに下記のようなエラーが出ることがあります。
おそらくソースコード内に日本語が入っている場合だと思うのですが、コントローラーの1行目に下記を追加しないと上記エラーではまることがあります。ログを見て、変なところでSyntaxErrorが発生している場合は、これが原因の可能性あります。
Application Error
An error occurred in the application and your page could not be served. Please try again in a few moments.
If you are the application owner, check your logs for details.
おそらくソースコード内に日本語が入っている場合だと思うのですが、コントローラーの1行目に下記を追加しないと上記エラーではまることがあります。ログを見て、変なところでSyntaxErrorが発生している場合は、これが原因の可能性あります。
# -*- encoding: utf-8 -*-
2012/01/07: [Rails]Rakeタスクからコントローラー・アクションを呼び出す
RailsのRakeタスクからコントローラー・アクションを呼び出す例です。
Controllerってシングルトンなのかな?とか、ちと理解不足ですが、とりあえずHeroku Schedulerからこのタスクを呼び出して、任意のコントローラーのアクションが呼び出されることを確認しました。
Controllerってシングルトンなのかな?とか、ちと理解不足ですが、とりあえずHeroku Schedulerからこのタスクを呼び出して、任意のコントローラーのアクションが呼び出されることを確認しました。
desc "This task is call controller's action."
task :hoge => :environment do
_controller = MyController.new
_controller.fuge
end