2015-11-19 198 views
0

,我需要解决两个任务在我的Rails应用程序,我需要一些建议:Ruby on Rails的4单向协会

  1. 我有Person模型和汽车模型。一个人只能有一辆车。这意味着汽车总是有司机=人,但不是每个人都有汽车。所以我需要单向One to One。可以用rails来实现吗?其实我需要汽车,我不需要belongs_to人
  2. 我有订单和负载模型。在我的系统中有很多订单,当我准备好交付这些订单时,我将构建新的Load对象并将所有我想要交付的订单放在那里。因此,每个Load has_many命令但不是每个命令belongs_to Load。它是单向的一个一对多......此外,我不需要像order.load,我只需要load.orders

那么,怎样才能用我导轨实现它?

+0

为什么我们不需要belongs_to,只需定义它,因为如果'car.person == nil'表示汽车不属于任何人,否则车属于一个人。这完全有道理,对吗? –

+0

你是对的,那么我不需要使用has_one?因为可以有人没有车的情况? –

+0

你还需要has_one,因为person.car ==零,这意味着这个人没有车。这很正常:)让它变得容易。 has_one/belongs_to这里意味着:一个人可能有1/0车,而一辆车可能属于1/0人。这实际上是1-1关系 –

回答

0
class Person < ActiveRecord::Base 
    has_one :car 
end 

class Load < ActiveRecord::Base 
    has_many :orders 
end 

然后你可以调用person_instance.car或load_instance.orders。您必须在订单上有load_id和汽车上的person_id