今週の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を使った方がいい
- <% -%>の-は必要なくなった