Проверка Ruby on Rails ActiveRecord - PullRequest
1 голос
/ 19 ноября 2009

Я хотел бы проверить атрибуты в функции, подобной этой

class User < ActiveRecord::Base

  validate :check_name( :name )

  def check_name( name )
    ... if name is invalid ...
       self.errors.add( :name, 'Name is invalid')
  end

end

Можете ли вы написать правильный код? Пожалуйста, объясните функциональность, почему ... СПАСИБО!

1 Ответ

6 голосов
/ 19 ноября 2009
class User < ActiveRecord::Base

  validate :check_name

  def check_name
    if name # is invalid ...
      self.errors.add(:name, 'Name is invalid')
    end
  end

end

Вы можете использовать макрос validate, но метод не может принимать параметры. Вам нужно извлечь значение атрибута из метода, а затем проверить его.

Заменить

if name # is invalid ...

с вашей собственной логикой проверки.

...