2010-10-10 55 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