しばらくこれに固執していたので、そこに捨てることにしました。
2 つのモデルと結合モデルがあります。
class Container < ActiveRecord::Base
has_many :theme_containers
has_many :themes, :through => :theme_containers
end
class Theme < ActiveRecord::Base
has_many :theme_containers
has_many :containers, :through => :theme_containers
end
class ThemeContainer < ActiveRecord::Base
belongs_to :container
belongs_to :theme
end
グランド。コンソールで Theme.first.containers と Theme.first.theme_containers を入力すると、期待どおりのモデルが得られるため、この関連付けが機能していることがわかります (当面は theme_container インスタンスを手動で作成しました)。
問題は、テーマのフォームで、結合データ (theme_containers) の属性を更新できるようにしたいことです。
これが私のフォームの簡略版です。
<%= form_for(@theme) do |f| %>
<%= f.fields_for :theme_containers do |builder| %>
<%= render 'theme_container_fields', f: builder %>
<% end %>
<% end %>
これを実行すると、container_fields パーシャルは 1 回だけレンダリングされ、ビルダー オブジェクトは元の @theme オブジェクトを見ているようです。ここで私のアプローチに明らかに明らかに間違っていることがありますか? 私がやろうとしていることは可能ですか?
また、Rails 4 を実行しているため、accepts_nested_attributes_for を使用しておらず、強力なパラメーターを設定しています。それが私の特定の問題に影響を与えるべきだとは思いませんが、それも捨ててしまいます。
ありがとう!