form_forについて分かったことまとめ

第一引数
インスタンス or 文字列 or シンボルを指定
(配列でもいけるっぽいけど、どんなときに使うんだろうか


アクション先で取得するハッシュのキーには (param[:key]こんな感じで
第一引数が文字列、シンボルならその文字列が
インスタンスならそのクラス名が使われる(と思われる


オプションいろいろ
methodの指定

  • :html=>{:method=>:put}

アクション先の指定

  • :url=>(route_path @instance_name)
    :url=>{:action=>"action_name", :id=>@instance_name}

scaffoldを作成したときにできるviewは、newもeditも、下記のようになっている

<% form_for(@article) do |f| %>

なのにアクション先がcreateかupdateかに分岐できるかというと
インスタンスnew_record?を見て判断しているから


というわけで
ActiveRecordを継承していないクラスを引数に使うときに
new_record?メソッドで適切な値を返してやると、form_forをうまくだますことができる。
(けどここまでやるなら違う方法でやったほうがいいよなー。