やりたいことは↓にあった。素敵!
参考:Railscasts - Complex Forms Part 3
概要
1.モデルにリレーションを設定
has_many / belogs_to
2.親モデル更新時に子も更新する
親モデル内に更新ロジックを記載
3.新規/更新で fields_for のタグが変わるように設定
4.「3」で分けたタグ毎に task_attributes= を用意
はまったとこ
1.render :partial :collection
↓みたいに render :partial で collectionを渡して回す方法が載っているが
partial先でオブジェクトがnilになってしまった。よくわからん。
<%= render :partial => 'task', :collection => @project.tasks %>
なので、objectで渡して、partial先でループするようにして解決。
<%= render :partial => 'task', :object => @project.tasks %>
2.prototype.js
新規追加でhtml修正するのがprototypeで書かれているということに
全く気づかず大分悩みました。
layoutに <%= javascript_include_tag :defaults %> って追加して解決。
いまいち理解できていないとこ
1.子モデル更新のメソッドが save(false) になっている点。(概要「2」)
親モデルの頭で validates_associated :子モデルs ってやってるからかな?
結論
Railscasts すげー。勉強になった。