Ruby on Rails: как проверить модель без Active Record? - PullRequest
20 голосов
/ 22 марта 2012

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

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

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

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

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

Ответы [ 2 ]

28 голосов
/ 22 марта 2012

В Rails 3 Active Model содержит функции Active Record, не связанные с базой данных.

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

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

1 голос
/ 07 ноября 2013

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

...