2012-09-29 180 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