2012-09-29 146 views
3

如果任何人有一個更好的標題,請讓我知道:對Rails的:通過關聯創建通過記錄

我有以下型號:

class Car 
    has_many :car_drivers 
    has_many :drivers, :through => :car_drivers 
end 

class Driver 
    has_many :car_drivers 
    has_many :cars, :through => :car_drivers 
end 

class CarDriver 
    belongs_to :car 
    belongs_to :driver 
end 

現在我想通過創建一個新的驅動程序Car,但連接表(car_drivers)中的記錄也應該創建。我嘗試了以下方法,但在創建車記錄時,連接表記錄不是:driver_object.cars.create

這種情況下的最佳做法是什麼?

回答

8

以下內容將創建Car的新實例,但不會將其與Driver實例相關聯。

driver_object.cars.create 

以下工作

driver_object.cars << Car.create(...) 

中的ActiveRecord的<<方法追加新創建Car實例的:cars集合上saveDriverDriver電話,創建CarDriver實例涉及新Cardriver_object

+0

酷,工作。謝謝! –

+0

@deefour如果他們有更多的屬性,我們如何爲CarDriver模型添加值?我的意思是最佳做法 – sethi