这是模型关联
class Driver
has_many :cars
validates :cars, presence: true
end
class Car
belongs_to :driver
end
汽车记录已经存在。不需要驱动程序
第一辆ID为1的汽车被分配给驾驶员1
driver1.car_ids = [1]
driver1现在有一辆车
现在我们用汽车1创建驾驶员2
driver2.car_ids = [1]
driver1无效,因为它不再有汽车
处理此问题的最佳方法是什么?
答案 0 :(得分:1)
失败的原因是,在您当前的设置中,一辆汽车只能有一个驾驶员。由于将驱动程序1分配给汽车,然后将驱动程序2分配给汽车,因此驱动程序2会覆盖驱动程序1,使驱动程序2成为汽车所有者。如果您想在汽车中有很多驾驶员,则应将设置更改为:
class Car
has_many :drivers
end
这将使您可以为汽车分配许多驾驶员(如果需要,则仅分配一个驾驶员)。
答案 1 :(得分:0)
您的关联失败,因为当驾驶员可以在您的设置中拥有多辆汽车时,一辆汽车属于一名驾驶员。您需要使用联接表和has_and_belongs_to_many关联。