日本語のメールを送信する
代々、Railsでの日本語メールはパッチを当てるか処理を書かないと、普段日本で流通しているメールの形式にはならない。 ようするに、エンコーディングが違うのである。 RailsでActiveMailを使って普通に送信すると、エンコーディングをUTF-8で送信してしまう。 ThunderBirdとかGMailとかだと、その辺を勝手に解釈して正常に表示されてしまうが 日本にはいまだにエンコードがUTF-8では正しく表示されないメーラーがあったりする。 これに対応するには、エンコーディングをUTF-8で ...
camelizeとunderscore
AdminUserなんていうクラスがあるとして、 admin_user という文字列を欲しい時に "AdminUser".underscore #=> admin_user という感じで使う 逆にしたい場合は "admin_user".camelize #=> AdminUser
pluralizeとsingularizeで、単数形、複数形変換
複数形で書かれた英語表記の文字列を単数形に変換したい場合、または 単数形を複数形に変換した場合に使用する。 userという文字列がある場合 a = 'user' b = 'users' a.pluralize #=> users b.singularize #=> user となる
content_forの挙動
Rails 3 になってから、content_forの挙動が少し変わった。 Rails 2までの動きだと <% content_for :title do -%> トップページ <% end -%> という感じでタイトルを各ビューごとに変更するような作りの場合 レイアウトのhtml.erbでは、 <title><%= yield(:title) || 'デフォルトのトップページ' %></title> とやると、各ビューの方でconte ...
helper :allを解除
Rails2.3あたり?(もうちょっと前かな?)からhelperはデフォルトで全部読み込むようになってまった。 別のコントローラのhelperも呼んでしまうので、同じメソッドが定義してあると、どれが呼ばれるかくわからなくなる。 Rails 3.0では、Application::Baseで読み込んでしまうので、 これを解除するにはアプリケーションコントローラに #app/controller/application_controller.rb clear_helpers を追加する