如何从模型中的控制器名称进行验证的条件语句

时间:2011-11-26 07:30:26

标签: ruby-on-rails-3 validation

示例:

  • account_controller:不验证密码
  • password_controller:验证密码

我的想法是......

class User
  include Mongoid::Document
...
  validates :username,
    :presence => true
  validates :password,
    :presence => { :if => :passord? }
...
  def password?
    # self.controller.to_s == 'password'
  end
end

首先,我的想法是错的?

任何人都有另一个好主意吗?

1 个答案:

答案 0 :(得分:3)

您可以将虚拟属性添加到模型和条件验证中:

class User
  attr_accessor :skip_password_validation

  validates :password, :unless => :skip_password_validation

end

把这样的东西放到控制器中:

user.skip_password_validation = true