Formulário aninhado do Rails com has_many: through, como editar atributos do modelo de junção?
Como você edita os atributos de um modelo de junção ao usar accept_nested_attributes_for?
Eu tenho 3 modelos: Tópicos e Artigos acompanhados por Linkers
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
Então, quando crio o artigo na ação "nova" do controlador de tópicos ...
@topic.articles.build
... e crie o formulário aninhado em topics / new.html.erb ...
<% form_for(@topic) do |topic_form| %>
...fields...
<% topic_form.fields_for :articles do |article_form| %>
...fields...
... O Rails cria automaticamente o vinculador, o que é ótimo.Agora, minha pergunta: Meu modelo do Linker também possui atributos que eu quero poder alterar através do formulário "novo tópico". Mas o vinculador que o Rails cria automaticamente possui valores nulos para todos os seus atributos, exceto topic_id e article_id. Como posso colocar campos para esses outros atributos do vinculador no formulário "novo tópico" para que eles não sejam nulos?