Rails 4将update_attributes(params.permit)与修复变量

时间:2015-10-09 14:07:07

标签: ruby-on-rails ruby-on-rails-4 activerecord

通过API,我的模型会通过此调用进行更新:

if @user.update_attributes(params.permit(:name, :phone, ...)
    format ...
else 
    format ...
end 

这嵌套在另一个if查询中,并根据结果我想在同一个模型中设置另一个变量。到目前为止我用

做到了
@user.update_attributes(variable: :value)

但这会在我的桌子上发出两次写入,我很确定可以 合并成一个,但我不知道如何。 这是整个区块:

if test_for_something
   @user.update_attributes(variable: :value)
   if @user.update_attributes(params.permit(:name, :phone, ...)
     format ...
   else 
     format ...
   end 

提前全部谢谢!

1 个答案:

答案 0 :(得分:0)

value添加到permit哈希中,然后只运行一次update_attributes。

确保允许此字段。

这只是你可以做到的一个例子:

修改

params[:value] = value

如果嵌套在模型名称中,则:

params[:model][:value] = value

然后:

@user.update_attributes(params.permit(:name, :phone, :value, ...)
希望它对你有所帮助。