我有3个型号:用户,订单和汽车,我有疑问,因为我不知道它们之间有什么关系模特将是最好的。唯一要求是每个用户只能按顺序购买一辆汽车。
答案 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关系,但是你比我更了解你的问题。