模型

时间:2016-02-20 09:11:14

标签: ruby-on-rails

我有3个型号:用户订单汽车,我有疑问,因为我不知道它们之间有什么关系模特将是最好的。唯一要求是每个用户只能按顺序购买一辆汽车。

2 个答案:

答案 0 :(得分:2)

用户可以拥有多个订单,因此可以通过这些订单购买许多汽车。

class User < ActiveRecord::Base
  has_many :orders
  has_many :cars, through: :orders
end

订单属于用户和汽车。

class Order < ActiveRecord::Base
  belongs_to :user
  belongs_to :car
end

汽车有一个订单。

class Car < ActiveRecord::Base
  has_one :order
end

答案 1 :(得分:1)

因此,您需要订单和汽车之间的一对一关系,然后回到订单和客户之间的关系。下面的东西应该可以解决问题。

class Car < ActiveRecord::Base
  has_one :order
  has_one :customer, through: :order
end

class Order < ActiveRecord::Base
  belongs_to :car
  belongs_to :customer 
end

class Customer < ActiveRecord::Base
  has_one :order
  has_one :car , through: :order
end

但是我会根据模型名称的外观建议has_many关系,但是你比我更了解你的问题。