親子関係にあるモデルを一括更新する方法

やりたいことは↓にあった。素敵!
参考: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 すげー。勉強になった。