Как сделать условное утверждение проверки по имени контроллера в модели - PullRequest
2 голосов
/ 26 ноября 2011

Пример:

  • 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 Ответ

3 голосов
/ 26 ноября 2011

Вы можете добавить виртуальный атрибут к вашей модели и условную проверку:

class User
  attr_accessor :skip_password_validation

  validates :password, :unless => :skip_password_validation

end

И поместите что-то вроде этого в контроллер:

user.skip_password_validation = true 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...