คุณจะแก้ไขแอตทริบิวต์ของโมเดลการเข้าร่วมได้อย่างไรเมื่อใช้ accept_nested_attributes_for
ฉันมี 3 โมเดล: หัวข้อและบทความที่ Linkers เข้าร่วม
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
ดังนั้นเมื่อฉันสร้างบทความในการดำเนินการ "ใหม่" ของตัวควบคุมหัวข้อ ...
@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 สร้างขึ้นโดยอัตโนมัติมีค่าศูนย์สำหรับแอตทริบิวต์ทั้งหมดยกเว้น topic_id และ article_id ฉันจะใส่ฟิลด์สำหรับแอตทริบิวต์ตัวเชื่อมโยงอื่น ๆ ลงในแบบฟอร์ม "หัวข้อใหม่" ได้อย่างไร
User
ผ่านการAccount
ใช้ aRelationship
เป็นlinker
... แต่ฉันคิดไม่ออกว่าการกระทำใหม่และการสร้างนั้นมีลักษณะอย่างไร ... คุณจะรังเกียจไหม