的所有孫子我有3種型號:的Rails如何獲得ojbect
User
has_many :questions
has_many :corrections
end
Question
has_one :correction
belongs_to :user
end
Correction
belongs_to :user
belongs_to :question
所以,如果用戶Bob問一個問題,然後用戶可以特里檢查它,如果它的報價錯誤的修正。
讓我們與鮑勃呆在一起,並假設他已經好心地糾正了5個其他用戶,即讓我們假設他很幸運能夠從其他用戶得到3次更正。
我希望能夠做這樣的事
@ bob.corrections_offered => 5矯正對象 @ bob.corrections_received => 3矯正對象
第一個是容易,因爲它真的只是@ bob.corrections在引擎蓋下。但我不知道如何實施後者。誰能幫忙?
UPDATE
所以,我試圖使用通過所建議的,像這樣(Oh和實際上面的問題模型在我的代碼實際上是所謂的句子。即,用戶=>句=>校正。)
has_many :sentences
has_many :corrections_received, :through => :sentences, :class_name => 'Correction'
,但得到了在控制檯這個錯誤
所以嘗試了以下
has_many :corrections_received, :through => :sentences, :source => :correction
,但得到
ActiveRecord::HasManyThroughSourceAssociationMacroError: Invalid source reflection macro :has_one for has_many :corrections_received, :through => :sentences. Use :source to specify the source reflection.
不知道怎麼回事錯誤...
如果更換一個的has_many您HAS_ONE,它會工作。 – kikito 2010-06-13 22:06:02