デザイナーとインフルエンスの2つのモデルがあります。それらは互いに「has_many」関係を持っています:Relationと呼ばれる結合モデルを介して。
単一のフォームを使用して、影響モデルからの情報を使用してデザイナーモデルを作成/更新したいと思います。デザイナコントローラの作成/更新アクションを介してリレーションオブジェクトを作成することは可能ですか?または、Relationsコントローラーを作成する必要がありますか?
私の現在のコードは次のとおりで、DesignersController#UpdateでNoMethodErrorが発生します。
Designer.rb
attr_accessible :name, :relation, :influence
has_many :relations
has_many :influences, :through => relations
Impact.rb
attr_accessible :name, :relation, :designer
has_many :relations
has_many :designers, :through => :relations
Relation.rb
attr_accessible :designer_id, :influence_id
belongs_to :designer
belongs_to :influence
Designers / _form.html.erb
<%= form_for @designer do |f| %>
<%= f.label :name %><br />
<%= f.text_field :name %>
<%= f.label :influence %><br />
<%= f.collection_select :influence, Influence.order(:name), :id, :name, include_blank: true %>
<%= f.submit %>
<% end %>
Designers_controller.rb
def update
@designer = current_designer
** Is there a way to create a new relation object here? **