Rubyの魔法に惑わされる日々。
Ruby on RailsのActiveResource & Restfulなコーディングをマスターするぜ!と泥沼にハマるなど。
問題としては、世間がRails 3.1の時代にあってやっとRails2.xを見始めたところにあるような気がしないでもないのだけど。だってメンテしてるアプリRails1.xなんだもん!Rails3.xはOS自体が受け付けないんだもん!!
もとい。
ざっくり世の中の資料によるとAcitveResourceにお任せ設計したRailsでのレコード更新は、
<% form_for @record % do |f| %>...<% end %>
としておけば、@recordにidがあったらPUTでupdateメソッドを叩きに行き、@recordにidが無かったらPOSTでcreateメソッドを叩きに行く…らしいのだけど。
今使っているRails2.3.14でこの書き方をやると、PUTでupdateを叩くのまでは良いのだけど、params[:id]が無くなってしまった。色々試行錯誤した結果として、
<% form_for @record :url => {:action => :update, :id => @record.id} do |f| %>
とするとようやくまともな動きをするように。ちなみに:actionをさぼるとPUTでeditを叩きに行く気配。
editメソッドを叩くURLの生成も
<%= link_to( 'Edit', edit_record_url( @record ) ) %>
では駄目で、
<%= link_to( 'Edit', edit_record_url( :id => @record ) ) %>
としないといけない。
どうも過渡期のRailsを使い始めてしまった気がしないでも無いけど、ここらへんの差異は資料が見つかりにくいというか魔法が効きすぎてかえって解除に手間取る気がする。
てか、form_forに至っては開発環境でri form_for して出てくる説明と実動作が合っていないので、あたしの環境はドキュメントとコードがずれているような気もする…。
| 固定リンク
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/28934/53886736
この記事へのトラックバック一覧です: Rubyの魔法に惑わされる日々。:


コメント