未定义方法'call':条件Rails 4.1升级后

时间:2014-12-01 14:13:14

标签: ruby-on-rails ruby

我最近从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) }

1 个答案:

答案 0 :(得分:2)

如果'foo'是一个范围,你可能会忘记对这个条件进行语法化。

在模型中试试这个:

scope :foo, -> { where(condition) }