2010-10-10 53 views
0

我有以下型号,购买,在我的Rails应用程序:创建第三级协会,其中第二级belongs_to的第三on Rails的ActiveRecord的

class Purchase < ActiveRecord::Base 
    [...] 
    belongs_to :payment, :validate => true 
    belongs_to :day, :foreign_key => :day_day, :primary_key => :day, 
    :counter_cache => true 
    [...] 
end 

和我有一天型号:

class Day < ActiveRecord::Base 
    [...] 
    has_many :purchases, :foreign_key => :day_day, :primary_key => :day 
    [...] 
end 

我您希望通过购买模式创建当天与当天发生的付款之间的关联。可能吗?

非常感谢!

回答

1

如果您可以详细了解为什么您的关系是按照他们的方式设置的,那么这可能会有所帮助。

我的第一个问题是什么Day对象组成?它可以通过在Purchase模型上拥有“purchased_on”属性来取代吗?
如果是这样,这可以通过Purchase上的范围很容易地完成。

二,现在你拥有它的方式单个Payment有很多Purchases。这真的是你的意思,或者你真的想要Purchase有很多Payments

让我知道,我会看看我们是否可以为你解决问题。

+0

嘿亚当!非常感谢你的帮助! Day模型只是一个模型,用于避免向5个以上的表格提出请求,以获取一天内的数据(货币进入,产品出货,原材料流动)。它只是在一天中的每一天结束,并从采购和材料中收集数据。支付已经购买,因为客户可以创建多个支付(如果他进入信用卡页面,然后返回,然后再次进入银行借记页面),并且我不想结束多个支付相同的支付购买.. – 2010-10-28 13:36:09

+0

我实际上停止搜索这个问题的答案,因为我发现一些解决方法只是停止懒惰,并开始做出多个请求时需要其他模型。 Day模型每天只创建一次,我可以忍受它运行时的计算成本!非常感谢你的帮助! – 2010-10-28 13:37:49