Mit has_many verschachtelte Rails-Form: Wie können Attribute des Join-Modells bearbeitet werden?
Wie bearbeiten Sie die Attribute eines Join-Modells, wenn accept_nested_attributes_for verwendet wird?
Ich habe 3 Modelle: Themen und Artikel von Linkers verbunden
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
Also, wenn ich den Artikel in der "neuen" Aktion des Themen-Controllers baue ...
@topic.articles.build
... und das verschachtelte Formular in topics / new.html.erb erstellen ...
<% form_for(@topic) do |topic_form| %>
...fields...
<% topic_form.fields_for :articles do |article_form| %>
...fields...
... Rails erstellt automatisch den Linker, was großartig ist.Nun zu meiner Frage: Mein Linker-Modell hat auch Attribute, die ich über das Formular "Neues Thema" ändern möchte. Der Linker, den Rails automatisch erstellt, enthält jedoch keine Werte für alle Attribute außer topic_id und article_id. Wie kann ich Felder für diese anderen Linker-Attribute in das "neue Thema" -Formular einfügen, damit sie nicht leer werden?