Лучший способ реализовать пользовательские проверки? - PullRequest
0 голосов
/ 24 мая 2011

Я ищу лучший способ реализовать пользовательские проверки. Я знаю об этом:

validates :email, :uniqueness => {:scope => :user_id}

Работает отлично. Но я хочу сделать что-то вроде этого (вымышленный случай, но он хорошо иллюстрирует):

validates :email, :uniqueness => {:scope => 'user.name'}

Я думаю об использовании таможенных проверок, как объяснено здесь, на рельсах, приведенных , но использование модуля для этого кажется немного излишним.

Кто-нибудь?

1 Ответ

3 голосов
/ 24 мая 2011

Используйте метод проверки.

class Model

  validate :validate_email_with_scope

  private

    def validate_email_with_scope
      if Model.where(...).any?
        errors.add(:email, 'is not unique')
      end
    end

end

Замените Model.where(...).any? на ваш запрос.

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