railsへのアップグレードのときに修正したところ
古いバージョンのrailsのscaffoldで生成したviewのコードがうまく動作しなかった。
1. link_toの引数が変更されていた。post=>trueではなく、:method=>:postが正解。
- 間違い
<%= link_to 'Destroy', {:action=>'destroy', :id =>foo }, :confirm => 'sure?', :post=>true %>
- 正解
<%= link_to 'Destroy', {:action=>'destroy', :id=>foo}, :confirm=>'sure?', :method=>:post %>
2. end_form_tagがなくなっており、start_form_tagでは、do,endのブロックの記述が必要。
- 間違い
<%= start_form_tag :action=>'update', :id=>@foo %> <%= submit_tag 'Edit' %> <%= end_form_tag %>
- 正解
<% form_tag :action => 'update', :id => @foo do %> <%= submit_tag 'Edit' %> <% end %>
rails2.0が自動生成するソースコードが美しくなった。バージョンアップを行うと、複雑度が増していく言語が多い中で、rubyの柔軟性とrailsの設計思想がうまく調和しているね。