我遇到:has_many => :through
關聯的問題,該關聯引用另一個:has_many => :through
關聯。Rails - 「Invalid source reflection」for:has_many =>:通過
我有一個User
→Cart
→CartItem
→Product
模型安裝進入我的rails應用程序。這裏是模型協會:
class User < ActiveRecord::Base
has_many :purchases, :class_name => "Cart",
:dependent => :destroy,
:conditions => {:purchased => true}
has_many :items, :through => :purchases,
:readonly => true
has_many :products, :through => :purchases,
:readonly => true
end
class Cart < Activerecord::Base
belongs_to :user
has_many :items, :class_name => "CartItem",
:dependent => :delete_all
has_many :products, :through => :items
end
class CartItem < ActiveRecord::Base
belongs_to :cart
belongs_to :product
end
這個想法是,一個購物車有很多cart_items,這只是對現有產品的參考。購物車被標記爲購買後,用戶應該可以直接通過user.products
訪問產品。
無論如何......我無法弄清楚如何設置我的User
模型,使關係成爲可能。我不斷收到以下錯誤:
Invalid source reflection macro :has_many :through for has_many :products,
:through => :purchases. Use :source to specify the source reflection.
我assumming它要我一個:source
屬性添加到has_many :products
副教授。在用戶模型中,但這看起來很愚蠢,考慮到源協會的命名方式是相同的(並且無論如何我都會添加:source => :products
)。
有誰知道我怎麼能得到這個工作?我真的很感激任何建議!
對不起,如果這個問題之前已經問過,但我一直在尋找,我找不到答案。提前致謝。
可能重複[的Ruby-on-Rails的:多的has_many:通過可能的(http://stackoverflow.com/questions/2383479/ruby-on-rails-通過多個可能性) – bschaeffer 2011-03-02 21:22:49