我最近从4.0.4升级到Rails 4.1。 我的代码有点像这样:
Model.foo.each do |model|
model.update_attributes (foo: bar)
end
和Model.foo.count
但我收到错误
undefined method `call' for {:conditions=>{:foo=>bar}}:Hash
可能出现什么问题?
从下面回答 - model.rb范围内的旧样式代码问题
我的范围过去看起来像这样:
scope :pro, :conditions => {:pro => true}
现在看起来像这样:
scope :pro, -> { where(pro: true) }
答案 0 :(得分:2)
如果'foo'是一个范围,你可能会忘记对这个条件进行语法化。
在模型中试试这个:
scope :foo, -> { where(condition) }