Rails 2.3.5:如何处理这种类型的验证

时间:2010-05-08 16:12:10

标签: ruby-on-rails activerecord

用例很简单。

我允许用户在表单中输入需要在1到15之间的到期字段。该模型获取该数字并将其转换为日期时间(例如从今天起添加15天)并将其存储在数据库中。

实际验证这个的正确方法是什么?我是否根据数据库中保留的日期时间格式或用户可以通过表单选择的选择框(1..15)进行验证?我希望能够验证用户输入1..15 ..如何在Rails 2.3.5中使用ActiveRecord验证?

我应该为基于整数的到期字段创建一个attr_accessor并对其进行验证吗?干净的方法是什么?

1 个答案:

答案 0 :(得分:4)

我想你有这样的代码

attr_accessor :expiration_num
before_save :convert_date

def convert_date
  self.expiration = self.expitration_num.days.since
end

所以只需添加如下验证方法:

validate :expiration_correctness

def expiration_correctness
  errors.add_to_base("Must be in 1-15") unless (1..15).include? self.expiration_num
end