2011-09-01 37 views
1

關於belongs_to關係有可能做關聯擴展嗎?belongsrec關於活躍記錄的關聯擴展

我試圖做到這一點使用一個模塊,但保留被告知我打電話的方法是私有的:

module TestExtension 
    def test 
    puts 'test successful' 
    end 
end 

class Question < ActiveRecord::Base 
    belongs_to :user, extend: TestExtension 
end 

我每次運行它雖然抱怨說,該方法是私有

q = Question.first 
q.test 
# => NoMethodError: Attempt to call private method `test' 

我不完全清楚是否有可能在belongs_to上進行AR擴展。它在Rails 3.0.7上工作正常,但現在在3.1.0中失敗

+0

你把模塊TestExtension放在哪裏?在lib目錄中的新文件中? – Coderama

回答

0

這是3.1.0中的一個known issue,尚未解決。基本上,3.1.0中的新關聯設計不支持擴展belongs_to關聯,因爲它從來不是首先支持的功能。但是,這個問題仍然存在,因此未來可能會得到解決。如果你需要的話,你應該對這個問題發表評論以支持語音支持。

此外,你得到的私人方法錯誤,即使你沒有extend: TestExtension部分,你也會得到;我相信#test是對所有ActiveRecord對象的私有方法。

+0

非常有幫助 - 感謝兩個點上的領導。我不知道.test限制 –