class Agents << ActiveRecord::Base
belongs_to :customer
belongs_to :house
end
class Customer << ActiveRecord::Base
has_many :agents
has_many :houses, through: :agents
end
class House << ActiveRecord::Base
has_many :agents
has_many :customers, through: :agents
end
ฉันจะเพิ่มAgents
รุ่นสำหรับCustomer
?
วิธีนี้เป็นวิธีที่ดีที่สุดหรือไม่?
Customer.find(1).agents.create(customer_id: 1, house_id: 1)
ข้างต้นใช้งานได้ดีจากคอนโซลอย่างไรก็ตามฉันไม่รู้ว่าจะบรรลุสิ่งนี้ในแอปพลิเคชันจริงได้อย่างไร
ลองนึกภาพว่ามีการกรอกแบบฟอร์มสำหรับลูกค้าที่ใช้house_id
เป็นข้อมูลป้อนข้อมูล จากนั้นฉันจะทำสิ่งต่อไปนี้ในคอนโทรลเลอร์ของฉันหรือไม่?
def create
@customer = Customer.new(params[:customer])
@customer.agents.create(customer_id: @customer.id, house_id: params[:house_id])
@customer.save
end
โดยรวมแล้วฉันสับสนว่าจะเพิ่มระเบียนในhas_many :through
ตารางได้อย่างไร?