accepts_nested_attributes_forを使用する場合、結合モデルの属性をどのように編集しますか?
私は3つのモデルを持っています:リンカーが参加したトピックと記事
class Topic < ActiveRecord::Base
has_many :linkers
has_many :articles, :through => :linkers, :foreign_key => :article_id
accepts_nested_attributes_for :articles
end
class Article < ActiveRecord::Base
has_many :linkers
has_many :topics, :through => :linkers, :foreign_key => :topic_id
end
class Linker < ActiveRecord::Base
#this is the join model, has extra attributes like "relevance"
belongs_to :topic
belongs_to :article
end
したがって、トピックコントローラの「新しい」アクションで記事を作成すると...
@topic.articles.build
...そしてtopics/new.html.erbでネストされたフォームを作成します...
<% form_for(@topic) do |topic_form| %>
...fields...
<% topic_form.fields_for :articles do |article_form| %>
...fields...
...Railsは自動的にリンカーを作成します。これはすばらしいことです。 さて、私の質問です。私のリンカーモデルには、「新しいトピック」フォームを介して変更できるようにしたい属性もあります。ただし、Railsが自動的に作成するリンカには、topic_idとarticle_idを除くすべての属性にnil値があります。これらの他のリンカー属性のフィールドを「新しいトピック」フォームに入れて、それらがゼロにならないようにするにはどうすればよいですか?