Rails verschachtelte Form mit has_many: through, wie Attribute des Join-Modells bearbeitet werden?

So Bearbeiten Sie die Attribute des join-Modell bei Verwendung accepts_nested_attributes_for?

Habe ich 3 Modelle: Themen und Artikeln verbunden durch die Linker

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

So, wenn ich Baue den Artikel in der "neuen" handeln von den Themen, die controller...

@topic.articles.build

...und machen die geschachtelte form in Themen/neue.html-Code.erb...

<% form_for(@topic) do |topic_form| %>
  ...fields...
  <% topic_form.fields_for :articles do |article_form| %>
    ...fields...

...Rails erzeugt automatisch den linker, das ist toll.
Nun zu meiner Frage: Mein Linker Modell hat auch die Eigenschaften, die ich möchte in der Lage sein, zu ändern, über die "neues Thema" form. Aber der linker, dass die Schienen automatisch erstellt, null-Werte für alle Attribute außer topic_id und 'article_id' per. Wie kann ich Felder für die anderen linker-Parametern in der "neues Thema" form, so dass Sie nicht come-out-null?

InformationsquelleAutor der Frage Arcolye | 2010-02-02

Schreibe einen Kommentar