рельсы 3 проверки в экземпляре методов модели - PullRequest
4 голосов
/ 14 апреля 2011

я хочу вызвать метод проверки активной записи в моем пользовательском методе проверки, например

class Asset < ActiveRecord::Base
  validate :ensure_unique_identification_code
  validates :name,:uniqueness=>true

 def ensure_unique_identification_code
   self.identifier="identifier code" #code is generated using some helper method of Asset model
  validates :identifier ,:uniqueness=>true

 end
end

дать ошибку

undefined method `validates' for #<Asset:0xb6692dbc>

как мы можем вызывать методы проверки в экземплярах методов модели

Ответы [ 3 ]

2 голосов
/ 27 октября 2011

Пожалуйста, проверьте эту ссылку (она имеет ответ): Как вызвать валидаторы ActiveRecord в качестве методов экземпляра (аля Sequel)?

0 голосов
/ 29 июля 2016

Вы можете создать конкретный валидатор и вызвать метод validate () напрямую:

def age_validation
  ActiveModel::Validations::NumericalityValidator.new(
    :greater_than_or_equal_to => 0,
    :less_than_or_equal_to => 100,
    :attributes => :age
  ).validate(self)
end
0 голосов
/ 13 февраля 2013

Возможно, вы используете новую версию Rails (3.xx) (rails -v), но у вас все еще есть старое приложение Rails ... Вы должны сгенерировать приложение Rails в другой папке, а затем переместить ваши файлы .rb , представления и т. д. в вашем новом приложении / папке ... Я подтверждаю, что «validates уникален для 3, как правило, когда эта ошибка возникает, люди все еще находятся на уровне 2,3», как сказал a3uge.

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