0

我有三个模型协议,服务和价格。

class Agreement < ActiveRecord::Base
  has_many :prices, as: :priceable
end

class Service < ActiveRecord::Base
  has_many :prices, as: :priceable
end

class Price  < ActiveRecord::Base
  attr_accessible :price, :price_currency, :priceable_id, :priceable_type
  belongs_to :priceable, polymorphic: true
end

但我在 service customer_price 和 Agency_price 有两种价格类型。协议没有价格类型。我想建模如下所示的东西。怎么可能?

class Agreement < ActiveRecord::Base
  has_many :prices, as: :priceable
end

class Service < ActiveRecord::Base
  has_many :customer_prices, as: :priceable # I think I should write something here
  has_many :agency_prices, as: :priceable   # I think I should write something here
end

class Price  < ActiveRecord::Base
  attr_accessible :price, :price_currency, :priceable_id, :priceable_type
  belongs_to :priceable, polymorphic: true
end

什么是最好的方法?可能我应该制作两个价格模型,如协议价格和服务价格。此致。

4

1 回答 1

0

制作两个模型实际上对您没有帮助。

我认为你只需要为你的关系设置一个特定的 foreign_key 。

has_many :customer_price, as: :priceable, :foreign_key => customer_price_id
has_many :agency_price, as: :priceable, :foreign_key => agency_price_id

这两个字段必须添加到您的架构中。

于 2013-03-06T16:41:16.400 回答