Подтвердить что ты не робот

Ruby on Rails: как проверить модель без активной записи?

В настоящее время я пытаюсь проверить поля без наследования ActiveRecord::Base.

Моя модель хранит данные на сервере кеша, поэтому мне не нужен ActiveRecord.

В любом случае, я хотел бы проверить поля модели, как если бы я использовал ActiveRecord (например, validates_numericality_of :quantity, :greater_than => 0)?

Как я могу это сделать?

Большое спасибо за вашу помощь.

4b9b3361

Ответ 1

В Rails 3 активная модель содержит неактивные функции Active Record.

В принципе, вам нужно включить ActiveModel::Validations, определить свои поля как attr_accessor, использовать метод initialize для инициализации атрибутов и сделать их ненасыщенными, поскольку ваша модель не сохраняется в базе данных.

Таким образом, вы можете иметь валидации на модели без таблиц и ваш контроллер так же, как если бы вы использовали Active Record. Там также Railscast на http://railscasts.com/episodes/219-active-model.

Ответ 2

Посмотрите наш Veto gem вместо этого, если вы ищете автономные проверки для объектов ruby. Он легкий и не имеет зависимостей. ActiveModel может быть излишним.