我的模特什么时候应该属于另一个?

时间:2012-05-10 16:27:46

标签: ruby-on-rails ruby-on-rails-3

我不确定我是否可以用我的协会来完成我想要的东西。

这是我在我的应用程序中想要的场景:

用户将选择商店。然后在该商店内部,用户选择产品,然后可以为该产品添加新价格。

class Business < ActiveRecord::Base
  has_many :stores
end

class Store < ActiveRecord::Base
  belongs_to :business
  has_many :prices
end 

class User < ActiveRecord::Base
  has_many :prices, :dependent => :destroy
  has_many :products, :through => :prices
end

class Price < ActiveRecord::Base
  belongs_to :user
  belongs_to :product
  belongs_to :store
end

class Product < ActiveRecord::Base
  has_many :prices
  has_many :users, :through => :prices
end

我不确定这是否正确,因为产品不属于商店(表中为integer store_id)。

要使此方案成功,我需要做些什么?这是正确的设计吗?

1 个答案:

答案 0 :(得分:1)

对于您要做的事情,这是一个很好的正确设计。

如果产品属于商店,那么产品只能在一家商店。由于商店可能有许多产品,并且产品可能在许多商店出售,因此您需要另一个参考产品和商店的商品。