简体   繁体   中英

Ruby on Rails: How to validate a model without Active Record?

I'm currently trying to validate fields without having an ActiveRecord::Base inheritance.

My model stores the data on a cache server so I do not need ActiveRecord.

Anyway, I would like to validate the fields of the model like I would if I was using ActiveRecord (eg validates_numericality_of :quantity, :greater_than => 0 ) ?

How can I do that?

Thank you very much for your help.

In Rails 3, Active Model contains the non-database functionality of Active Record.

Basically, you need to include ActiveModel::Validations , define your fields as attr_accessor , use an initialize method to initialize the attributes and make them non-persisted as your model isn't persisted to a database.

This way you can have validations on the tableless model and your controller the same as if you were using Active Record. There's also a Railscast on this http://railscasts.com/episodes/219-active-model .

Check out our Veto gem instead if you're looking for a standalone validations for ruby objects. It's lightweight, and has no dependencies.. ActiveModel might be overkill.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM