如何在 update_attributes 期间以管理员身份跳过验证? [英] How to skip validations as admin during update_attributes?

查看:35
本文介绍了如何在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆