如何在 update_attributes 期间以管理员身份跳过验证? [英] How to skip validations as admin during update_attributes?
本文介绍了如何在 update_attributes 期间以管理员身份跳过验证?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我尝试以管理员身份编辑用户时,我想跳过验证.
I want to skip validation when I am trying to edit user as admin.
模型
class User
...
attr_accessible :company_id, :first_name, :disabled, as: :admin
控制器
class Admin::UsersController
...
def update
@user = User.find(params[:id])
@user.update_attributes(params[:user], as: :admin)
redirect_to edit_admin_user_path(@user), :notice => "User Account Updated"
end
所以我尝试将 update
操作更改为
So I tried to change update
action to
def update
@user = User.find(params[:id])
@user.attributes = params[:user]
@user.save(validate: false)
redirect_to edit_admin_user_path(@user), :notice => "User Account Updated"
end
但是我无权设置 :disabled
和 :company_id
属性,因为我不知道在哪里设置 as::admin
But then I dont have access to set :disabled
and :company_id
attributes because i dont know where to set as: :admin
推荐答案
试试这个:
@user = User.find(params[:id])
@user.assign_attributes(params[:user], as: :admin)
@user.save(validate: false)
这篇关于如何在 update_attributes 期间以管理员身份跳过验证?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文