允许用户配置文件更新,无需密

时间:2014-03-10 18:27:08

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

如果当前用户是admin,我需要建议如何建模允许更新模型而无需验证。我做了一个简单的用户模型:

create_table "user", force: true do |t|
    t.string   "username",
    t.string   "password",
    t.string   "description",
    t.string   "title",
    t.boolean  "disabled"
end

所有用户都可以通过再次提供密码来更新其个人资料。管理员可以选择禁用这样的用户:

<%= link_to 'Disable', user_path(user, :user => {:disabled => true}), :method => :put %>

问题是在我的模型中我有以下验证:

validates :password, length: { minimum: 10 }

管理员触发操作以禁用用户后,错误显示密码太短且需要至少10个字符长。如何禁用admin的验证?

1 个答案:

答案 0 :(得分:0)

validates :password, length: { minimum: 10 }, :unless => :admin?

def admin?
  self.role == "Admin"
end

P.S:我不知道你需要检查一下用户是否是管理员。我假设你有一个角色列