カテゴリ: Ruby on Rails
投稿者: terada
RSpecを使っていると、-c,--color(カラーリングオプション)などはデフォルトでオンにしたいと思います。そういう時は、「~/.rspec」ファイルを作って、そこに「--color」と書いておけば良いようです。

※ ~/はユーザディレクトリ

また、プロジェクト毎にも同じ規則でルートに設定ファイルを作れるようです。まだ、必要性分かりませんが。メモ。

参考
カテゴリ: Ruby on Rails
投稿者: terada
Railsのルート設定をなんとかして、下記のようにアクセスできるようにするためのメモです。

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 => /.*/

参考
カテゴリ: Ruby on Rails
投稿者: terada
Heroku(Cedar)でRails3で作成したアプリケーションを動作させる時、ローカル環境ではOKなのに下記のようなエラーが出ることがあります。

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.


Application Error

おそらくソースコード内に日本語が入っている場合だと思うのですが、コントローラーの1行目に下記を追加しないと上記エラーではまることがあります。ログを見て、変なところでSyntaxErrorが発生している場合は、これが原因の可能性あります。

# -*- encoding: utf-8 -*-
カテゴリ: Ruby on Rails
投稿者: terada
RailsのRakeタスクからコントローラー・アクションを呼び出す例です。
Controllerってシングルトンなのかな?とか、ちと理解不足ですが、とりあえずHeroku Schedulerからこのタスクを呼び出して、任意のコントローラーのアクションが呼び出されることを確認しました。

desc "This task is call controller's action."
task :hoge => :environment do
_controller = MyController.new
_controller.fuge
end