プロジェクトで深くネストされたモデルを使用しています (simple_form と cocoon を使用)。ネストされたすべてのオブジェクトが新しい限り、すべてが正常に機能します。
私の問題は、既存の (ネストされた) オブジェクトからネストされたオブジェクトを作成したいということです。
これが私のモデルです
class Application < ActiveRecord::Base
belongs_to :submitter
has_one :composition
accepts_nested_attributes_for :submitter, :composition
end
class Submitter < ActiveRecord::Base
has_one :spouse
has_many :children
has_many :receipts
has_many :applications
accepts_nested_attributes_for :spouse, :children, :receipts, :applications
end
class Child < ActiveRecord::Base
belongs_to :submitter
has_many :receipts
end
作業プロセスは次のようになります。
新しいアプリケーション --> 新しい送信者 --> 新しい子
1 つのフォームからすべてを作成できます。
さらに、次のプロセスも実装したいと考えています。
新しいアプリケーション -->既存の送信者 --> 新しい子
既存のオブジェクトは、ドロップダウン リスト ボックスで選択する必要があります。
ビューの(簡略化された、動作する)コードは次のとおりです。
new.html.erb
<%= simple_form_for(@application) do |f| %>
<%= f.simple_fields_for :submitter do |submitter| %>
<%= render "submitter_fields", :f => submitter %>
<% end %>
<% end %>
_submitter_fields.html.erb
<%= f.input :firstname %>
<%= f.input :lastname %>
<%= render "child", :f => f %>
_child.html.erb
<div id="childs">
<%= f.simple_fields_for :children do |child| %>
<%= render "child_fields", :f => child %>
<% end %>
<div class="links">
<%= link_to_add_association 'Add child', f, :children %>
</div>
</div>
_child_fields.html.erb
<div class="nested-fields">
<%= f.input :firstname %>
<%= f.input :lastname %>
<%= link_to_remove_association "Remove child", f %>
</div>
ここで、既存のすべての送信者が取り込まれるドロップダウン リストを追加したいと考えています。例えば:
<%= f.assosciation :submitter %>
ここから問題が始まります。選択したサブミッターに新しい子を追加するためのフォームを作成するには、このオブジェクトをフォーム ビルダーに割り当てる必要があります。これを行う方法がわかりません。
誰かがこれを実装する方法を教えてもらえますか? それとも、このシナリオは単に不可能ですか?
前もって感謝します!
キリスト教徒