最佳答案
如何编辑联接模型的属性时,使用接受 _ 嵌套 _ 属性 _ for?
我有3个模型: 主题和文章联系人加入
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
因此,当我在主题控制器的“ new”操作中构建文章时..。
@topic.articles.build
... 并在主题/new.html. erb 中嵌套表单..。
<% form_for(@topic) do |topic_form| %>
...fields...
<% topic_form.fields_for :articles do |article_form| %>
...fields...
... Rails 会自动创建链接器,这很棒。 现在回答我的问题: 我的 Linker 模型也有一些属性,我希望能够通过“新主题”表单进行更改。但是 Rails 自动创建的链接器的所有属性都是 nil 值,除了 subject _ id 和 article _ id。如何将其他链接器属性的字段放入“新主题”表单中,这样它们就不会显示为空?