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の設計思想がうまく調和しているね。