在Rails 3中,我一直在使用以下包括范围(在模块中定义),它工作正常。
base.send :scope, :with_includes, { :include => {:questions => [:answers, :question_group, {:dependency => :dependency_conditions}]}}
这不再适用于Rails 4,因此我尝试将其转换为现在首选的lambda方法,如下所示。
base.send :scope, :with_includes, -> { includes(:questions => [:answers, :question_group, {:dependency => :dependency_conditions}]) }
这只会引发异常NoMethodError Exception: undefined method includes
答案 0 :(得分:1)
尝试使用lambda中的base.includes(...)
。
基本上,你的lambda中捕获的self
不是你的记录类:它是scope
send
(t)的地方。