【问题标题】:Rails: create through-record via associationRails:通过关联创建直通记录
【发布时间】:2012-09-29 15:33:17
【问题描述】:

如果有人有更好的标题,请告诉我: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,但连接表 (car_drivers) 中的记录也应该创建。我尝试了以下方法,但是在创建汽车记录时,连接表记录不是:driver_object.cars.create

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

【问题讨论】:

    标签: ruby-on-rails associations


    【解决方案1】:

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

    driver_object.cars.create
    

    以下作品

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

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

    【讨论】:

    • @deefour 如果 CarDriver 模型有更多属性,我们如何向它们添加值?我的意思是什么是最佳实践
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 2023-01-12
    • 1970-01-01
    • 2013-01-08
    • 2020-11-20
    • 2017-01-24
    相关资源
    最近更新 更多