где поставить ActiveModel :: Validator? - PullRequest
21 голосов
/ 17 декабря 2010

Я стараюсь следовать http://api.rubyonrails.org/classes/ActiveModel/Validator.html, но куда мне положить

 class MyValidator < ActiveModel::Validator
    def validate(record)
      if some_complex_logic
        record.errors[:base] = "This record is invalid"
      end
    end

    private
      def some_complex_logic
        # ...
      end
  end

Ответы [ 3 ]

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

Этот парень ставит их под app/validators/, что я и делал с тех пор, как увидел этот пост в блоге.

2 голосов
/ 17 декабря 2010

Добавьте этот класс в свой каталог lib, укажите его в вашей модели и включите в него.

1 голос
/ 17 апреля 2011

Кроме того, вы также можете добавить его в каталог моделей вашего приложения.Также, как упомянул Шингара, вам нужно добавить

include ActiveModel::Validations
validates_with MyValidator 

в файл модели класса записи.

...