首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails has_many指定子ids会将父ids呈现为无效,因为父ids必须具有子ids

Rails has_many指定子ids会将父ids呈现为无效,因为父ids必须具有子ids
EN

Stack Overflow用户
提问于 2020-04-08 10:19:57
回答 2查看 41关注 0票数 0

以下是模型关联

代码语言:javascript
复制
class Driver
  has_many :cars

  validates :cars, presence: true
end
代码语言:javascript
复制
class Car
  belongs_to :driver
end

汽车记录已经存在。它不需要有驱动程序

id为% 1的第一辆车被分配给driver %1

代码语言:javascript
复制
driver1.car_ids = [1]

driver1现在有一辆车

现在我们用car 1创建driver 2

代码语言:javascript
复制
driver2.car_ids = [1]

driver1变得无效,因为它不再有汽车

处理这个问题的最好方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2020-04-08 22:17:21

失败的原因是,在您当前的设置中,一辆车只能有一个司机。由于您将driver1分配给汽车,然后将driver2分配给汽车,因此driver2将覆盖driver1,使driver2成为汽车所有者。如果你想在一辆车里有很多司机,你应该将你的设置更改为:

代码语言:javascript
复制
class Car
  has_many :drivers
end

这将允许你为你的车分配多个司机(或者只有一个司机,如果这是你的意图)。

票数 1
EN

Stack Overflow用户

发布于 2020-04-08 21:37:36

您的关联失败,因为虽然一个司机可以在您的设置中有多辆车,但一辆车属于一个司机。您需要使用连接表和has_and_belongs_to_many关联。

Ruby on Rails Guides - has_and_belongs_to_many

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61092359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档