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をうまくだますことができる。
(けどここまでやるなら違う方法でやったほうがいいよなー。