【发布时间】:2015-11-19 18:02:51
【问题描述】:
我需要在我的 rails 应用中解决两个任务,我需要一些建议:
- 我有人模型和汽车模型。一个人只能拥有一辆车。这意味着 Car 总是有 driver = person,但不是每个人都有车。所以我在这里需要单向一对一。可以用rails实现吗?实际上我在 Car 上需要 has_one 而在 Person 上不需要 belongs_to
- 我有订购和装载模型。在我的系统中有很多订单,当我准备好交付这些订单时,我会构建新的 Load 对象并将我想要交付的所有订单放在那里。所以每个 Load 都有_many 个订单,但不是每个订单都属于_to Load。它是单向的一对多...而且我不需要像
order.load,这样的东西我只需要load.orders
那么我该如何用 rails 来实现呢?
【问题讨论】:
-
这里为什么不需要belongs_to,只要定义它,因为如果'car.person == nil'表示汽车不属于任何人,否则汽车属于一个人。这完全有道理,对吧?
-
你说得对,那我就不用has_one了?因为可能会有人没有车的情况?
-
你仍然需要has_one,因为person.car == nil,这意味着这个人没有车。这是正常的:) 让它变得容易。 has_one/belongs_to 这里的意思是:一个人可能有1/0的车,一辆车可能属于1/0的人。这实际上是 1-1 关系
标签: ruby-on-rails ruby