ruby-on-rails - Rails has_many assign child ids 使父级无效,因为父级必须有一个子级
问题描述
这是模型关联
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 变得无效,因为它不再有汽车
处理这个问题的最佳方法是什么?
解决方案
失败的原因是,在您当前的设置中,一辆车只能有一个司机。由于您将 driver1 分配给汽车,然后将 driver2 分配给汽车,因此 driver2 会覆盖 driver1,从而使 driver2 成为汽车所有者。如果你想在一辆车上有很多司机,你应该把你的设置改成这样:
class Car
has_many :drivers
end
这将允许您为您的汽车分配许多司机(或仅一名司机,如果这是有意的话)。
推荐阅读
- ffmpeg - FFMPEG Add 2 watermarks to an Image using single command
- java - 如何等待可流动的onComplete?
- javascript - 如何使用 express-validator 排除其他属性?
- flutter - Flutter - 如何在 GridView 下删除边距?
- ios - 在 iPad 上使用 window.overrideUserInterfaceStyle 时未启用/禁用暗模式
- laravel-5 - 如何使用页面和过滤器选项制作 Route::resource?
- python-3.x - 命令出错,退出状态为 1:python setup.py egg_info 检查日志以获取完整的命令输出。** 在安装 gumpy 时
- aws-cdk - 在其他堆栈中使用部署操作创建 CodePipeline 时“将创建循环引用”
- javascript - 我的组件未显示在索引页面中
- python-3.x - 在 matplotlib 中的垂直跨越区域上悬停时显示标签