Rails 3 で複数のネストされたフォームを作成しています。formtastic_cocoon ジェムを使用していますが、この問題とはあまり関係がないと思います。
私にはユーザーがいて、ユーザーにはタスクがあり、タスクにはステップがあります。ネストは、users>tasks>steps です。ユーザーに対してタスク フィールドを動的に追加および削除し、タスクからステップ フィールドを動的に追加および削除できます。
ただし、フォームを送信すると、ユーザーはタスクを取得しますが、タスク>ステップはデータベースに保存されません。
Rails はエラーを返さず、何も起こりません。
私のモデルは
クラス User < ActiveRecord::Base
act_as_authentic
has_many :タスク
accept_nested_attributes_for :tasks, :reject_if=> proc {|attributes| attributes[:entry].blank?}, :allow_destroy => true
終わり
クラス タスク < ActiveRecord::Base
attr_accessible :エントリ
所属先:ユーザー
has_many :steps
accept_nested_attributes_for :steps, :reject_if=> proc {|attributes| attributes[:title].blank?}, :allow_destroy => true
終わり
クラス Step < ActiveRecord::Base
attr_accessible :タイトル
所属先:タスク
終わり
私の form.html.erb には
<%= @ユーザーのセマンティックフォーム %>
<%= form.inputs :ユーザー名, :パスワード %>
<div>
<% form.semantic_form_fields_for :tasks do |builder| %>
<%= render 'task_fields', :f=>builder %>
<%終了%>
<%= link_to_add_association 'タスクの追加', フォーム, :タスク %>
</div>
_task_fields.html.erb は次のようになります
<div class="nested-fields">
<%= link_to_remove_association "タスクの削除", f %>
<%= f.inputs :entry %>
<div>
<% f.semantic_form_fields_form :steps do |builder| %>
<%= レンダリング 'step_fields' :f => ビルダー %>
<%終了%>
<%= link_to_add_association 'ステップを追加', f, :steps %>
</div>
</div>
最後に、_step_fields.html.erb ページは
<div class="nested-fields">
<%= link_to_remove_association "削除ステップ", f %>
<%= f.inputs :タイトル %>
</div>