Làm cách nào để bạn chỉnh sửa các thuộc tính của mô hình kết hợp khi sử dụng accept_nested_attributes_for?
Tôi có 3 mô hình: Chủ đề và Bài viết do Người liên kết tham gia
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
Vì vậy, khi tôi xây dựng bài viết trong hành động "mới" của bộ điều khiển chủ đề ...
@topic.articles.build
... và tạo biểu mẫu lồng nhau trong topic / new.html.erb ...
<% form_for(@topic) do |topic_form| %>
...fields...
<% topic_form.fields_for :articles do |article_form| %>
...fields...
... Rails tự động tạo trình liên kết, điều này thật tuyệt. Bây giờ cho câu hỏi của tôi: Mô hình Trình liên kết của tôi cũng có các thuộc tính mà tôi muốn có thể thay đổi thông qua biểu mẫu "chủ đề mới". Nhưng trình liên kết mà Rails tự động tạo có giá trị nil cho tất cả các thuộc tính của nó ngoại trừ topic_id và article_id. Làm cách nào để đặt các trường cho các thuộc tính trình liên kết khác đó vào biểu mẫu "chủ đề mới" để chúng không xuất hiện?
User
thông quaAccount
bằng cách sử dụng aRelationship
as alinker
... nhưng tôi không thể tìm ra hành động mới và tạo có nghĩa là như thế nào ... bạn có phiền không?