Wie bearbeiten Sie die Attribute eines Join-Modells, wenn Sie accept_nested_attributes_for verwenden?
Ich habe 3 Modelle: Themen und Artikel, denen Linker beitreten
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 erstellen Sie das verschachtelte Formular in den Themen / new.html.erb ...
<% 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 von Rails automatisch erstellte Linker hat jedoch für alle Attribute außer topic_id und article_id keine Werte. Wie kann ich Felder für diese anderen Linkerattribute in das Formular "Neues Thema" einfügen, damit sie nicht gleich Null werden?
User
durch einAccount
Verwenden einesRelationship
alslinker
... erstellen, aber ich kann nicht herausfinden, wie die neuen und erstellten Aktionen aussehen sollen ... würde es Ihnen etwas ausmachen?