是否可以对belongs_to
关系进行关联扩展?
我曾尝试使用模块执行此操作,但一直被告知我正在调用的方法是私有的:
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'
我不是100%清楚是否可以在belongs_to上进行AR扩展。它在Rails 3.0.7上运行良好,但现在在3.1.0中失败了
答案 0 :(得分:0)
这是3.1.0中尚未解决的known issue。基本上,3.1.0中的新关联设计不支持扩展belongs_to
关联,因为它从一开始就不是支持的功能。但是,这个问题仍然存在,因此将来可能会得到解决;如果你愿意的话,你应该对语音支持的问题发表评论。
此外,即使您没有extend: TestExtension
部分,您将获得私有方法错误;我相信#test
是所有ActiveRecord
个对象的私有方法。