Rails 3 #update_attributes

时间:2017-06-16 12:23:59

标签: ruby-on-rails ruby ruby-on-rails-3

我正在使用之前从Rails 3升级的Rails 4应用程序。我之前没有使用过很多Rails 3。我遇到过这样的事情user.update_attributes({ attr => bulk_update_params[attr] }, :as => :admin)。 Rails 4目前抱怨update_attributes只接受1个参数而不是2个。

我尝试通过as: :admin合并user.update_attributes({ attr => bulk_update_params[attr] }).merge(as: :admin),但后来我接受了类似" as"不是已知的属性"。

不完全确定,但我如何处理as: admin部分?完全删除它是否安全,或者是否可以将as: :admin传递给Rails 4中的原始user.update_attributes({ attr => bulk_update_params[attr] }, :as => :admin)

我认为它与attr_accessiblestrong_params有关,现在还不确定如何在Rails 4中使用它。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

看一下强参数。允许的属性应在控制器中确定,而不是模型

http://edgeguides.rubyonrails.org/action_controller_overview.html#strong-parameters

例如控制器会有

console.log(json.length)

答案 1 :(得分:0)

尝试将as:admin移动到哈希

user.update_attributes({ attr => bulk_update_params[attr], :as => :admin })

您可能还想考虑使用update_attributes! (最后有一个!)所以如果有错误,它会爆炸而不会无声地失败。