Ruby on Rails: как проверить модель без активной записи?
В настоящее время я пытаюсь проверить поля без наследования ActiveRecord::Base
.
Моя модель хранит данные на сервере кеша, поэтому мне не нужен ActiveRecord.
В любом случае, я хотел бы проверить поля модели, как если бы я использовал ActiveRecord (например, validates_numericality_of :quantity, :greater_than => 0
)?
Как я могу это сделать?
Большое спасибо за вашу помощь.
Ответы
Ответ 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 может быть излишним.