上的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'