Rails:通过关联创建直通记录

时间:2012-09-29 15:33:17

标签: ruby-on-rails associations

如果有人有更好的头衔,请告诉我:p

我有以下型号:

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创建一个新的Driver,但是也应该创建join-table(car_drivers)中的记录。我尝试了以下操作,但在创建汽车记录时,联接表记录不是:driver_object.cars.create

在这种情况下,最佳做法是什么?

1 个答案:

答案 0 :(得分:8)

以下内容将创建Car的新实例,但不会将其与Driver实例关联。

driver_object.cars.create

以下作品

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

ActiveRecord中的<<方法将新创建的Car实例附加到:cars 调用Driver上的save集合中在Driver上创建CarDriver个实例,将新的Cardriver_object相关联。