Ruby on Rails 3 Tips

代々、Railsでの日本語メールはパッチを当てるか処理を書かないと、普段日本で流通しているメールの形式にはならない。 ようするに、エンコーディングが違うのである。 RailsでActiveMailを使って普通に送信すると、エンコーディングをUTF-8で送信してしまう。 ThunderBirdとかGMailとかだと、その辺を勝手に解釈して正常に表示されてしまうが 日本にはいまだにエンコードがUTF-8では正しく表示されないメーラーがあったりする。 これに対応するには、エンコーディングをUTF-8で ...

Ruby on Rails 3 Tips

AdminUserなんていうクラスがあるとして、 admin_user という文字列を欲しい時に "AdminUser".underscore #=> admin_user という感じで使う 逆にしたい場合は "admin_user".camelize #=> AdminUser

Ruby on Rails 3 Tips

複数形で書かれた英語表記の文字列を単数形に変換したい場合、または 単数形を複数形に変換した場合に使用する。 userという文字列がある場合 a = 'user' b = 'users' a.pluralize #=> users b.singularize #=> user となる

Ruby on Rails 3 Tips

Rails 3 になってから、content_forの挙動が少し変わった。 Rails 2までの動きだと <% content_for :title do -%> トップページ <% end -%> という感じでタイトルを各ビューごとに変更するような作りの場合 レイアウトのhtml.erbでは、 <title><%= yield(:title) || 'デフォルトのトップページ' %></title> とやると、各ビューの方でconte ...

Ruby on Rails 3 Tips

Rails2.3あたり?(もうちょっと前かな?)からhelperはデフォルトで全部読み込むようになってまった。 別のコントローラのhelperも呼んでしまうので、同じメソッドが定義してあると、どれが呼ばれるかくわからなくなる。 Rails 3.0では、Application::Baseで読み込んでしまうので、 これを解除するにはアプリケーションコントローラに #app/controller/application_controller.rb clear_helpers を追加する