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

时间:2012-03-22 05:20:38

标签: ruby-on-rails validation activerecord model

我目前正在尝试在没有ActiveRecord::Base继承的情况下验证字段。

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

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

我该怎么做?

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:28)

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

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

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

答案 1 :(得分:1)

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