Ruby on Rails:如何在没有Active Record的情况下validation模型?

我目前正在尝试validation没有ActiveRecord::Baseinheritance的字段。

我的模型将数据存储在缓存服务器上,因此我不需要ActiveRecord。

无论如何,我想validation模型的字段,就像我使用ActiveRecord一样(例如validates_numericality_of :quantity, :greater_than => 0 )?

我怎样才能做到这一点?

非常感谢您的帮助。

在Rails 3中,Active Model包含Active Record的非数据库function。

基本上,您需要包含ActiveModel::Validations ,将您的字段定义为attr_accessor ,使用initialize方法初始化属性并使其不持久化,因为您的模型不会持久保存到数据库。

这样,您可以对无表格模型和控制器进行validation,就像使用Active Record一样。 这个http://railscasts.com/episodes/219-active-model上还有一个Railscast。

如果您正在寻找ruby对象的独立validation,请查看我们的Veto gem 。 它是轻量级的,没有依赖性.ActiveModel可能有点过分。