上的Activerecord关联扩展属于
是否可以对上的Activerecord关联扩展属于,activerecord,ruby-on-rails-3.1,Activerecord,Ruby On Rails 3.1,是否可以对所属关系进行关联扩展 我曾尝试使用一个模块进行此操作,但一直被告知我调用的方法是私有的: module TestExtension def test puts 'test successful' end end class Question < ActiveRecord::Base belongs_to :user, extend: TestExtension end 我不是100%清楚是否有可能在您所属的服务器上进行AR扩展。它在Rails 3.0.7上
所属关系进行关联扩展
我曾尝试使用一个模块进行此操作,但一直被告知我调用的方法是私有的:
module TestExtension
def test
puts 'test successful'
end
end
class Question < ActiveRecord::Base
belongs_to :user, extend: TestExtension
end
我不是100%清楚是否有可能在您所属的服务器上进行AR扩展。它在Rails 3.0.7上运行良好,但现在在3.1.0中失败了这是一个在3.1.0中尚未解决的问题。基本上,3.1.0中的新关联设计不支持扩展属于关联,因为它从一开始就不受支持。但是,这个问题仍然悬而未决,因此将来可能会得到解决;如果您愿意,您可能应该向语音支持部门发表意见
此外,您得到的私有方法错误,即使没有extend:TestExtension
部分,也会得到;我相信#test
是所有ActiveRecord
对象上的私有方法。这是3.1.0中尚未解决的问题。基本上,3.1.0中的新关联设计不支持扩展属于关联,因为它从一开始就不受支持。但是,这个问题仍然悬而未决,因此将来可能会得到解决;如果您愿意,您可能应该向语音支持部门发表意见
此外,您得到的私有方法错误,即使没有extend:TestExtension
部分,也会得到;我相信#test
是所有ActiveRecord
对象上的一种私有方法。非常有用-感谢您在这两点上的指导。我不知道。测试限制非常有用-谢谢你在这两点上的提醒。我不知道。测试限制。你把模块TestExtension放在哪里?在lib目录的新文件中?您将模块TestExtension放在哪里?在lib目录的新文件中?
q = Question.first
q.test
# => NoMethodError: Attempt to call private method `test'