maeshimaの日記

メモ書きです

今週のrailscasts - ERB Blocks in Rails 3

Railscasts - ERB Blocks in Rails 3を見て。Rails3のviewでのブロックの使い方が変わったという話。

変更点

blockをとるメソッドで=いらなかったのが必要になった


Rails 2

<% form_for @users do |f| %>
<% end %>

Rails 3

<%= form_for @users do |f| %>
<% end %>

=が必要なメソッドと必要ないメソッドがある

=が必要なメソッド

  • form_for
  • div_for

=が必要ないメソッド

  • each
  • content_for
  • cache


なにかを表示する系のメソッドには=が必要ってことかな。

ブロックを持つヘルパーメソッドの作り方

上記の変更に伴いブロックを持つヘルパーメソッドの作り方も変わった。

下記のようにwith_output_bufferにブロックを渡す

content = with_output_buffer(&block)
content_tag(:div, content, :class => "admin")

下記のようにcontent_tagにブロックを渡してももいいらしい

content_tag(:div, content, :class => "admin", &block)

その他

  • 1.9.1にはバグがあるので1.9.2を使った方がいい
  • <% -%>の-は必要なくなった