Jak edytować atrybuty modelu łączenia przy użyciu accepts_nested_attributes_for?
Mam 3 modele: tematy i artykuły połączone przez łączników
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
Kiedy więc buduję artykuł w „nowej” akcji kontrolera tematów ...
@topic.articles.build
... i utwórz zagnieżdżony formularz w topic / new.html.erb ...
<% form_for(@topic) do |topic_form| %>
...fields...
<% topic_form.fields_for :articles do |article_form| %>
...fields...
... Railsy automatycznie tworzą konsolidator, co jest świetne. A teraz moje pytanie: mój model Linkera również ma atrybuty, które chcę zmienić za pomocą formularza „nowy temat”. Jednak linker, który Railsy automatycznie tworzy, ma wartości zerowe dla wszystkich swoich atrybutów z wyjątkiem topic_id i article_id. Jak mogę umieścić pola dla tych innych atrybutów linkera w formularzu „nowego tematu”, aby nie wychodziły zera?
User
zaAccount
pomocą aRelationship
jakolinker
... ale nie mogę dowiedzieć się, jak mają wyglądać nowe i tworzone działania ... czy miałbyś coś przeciwko?