0

如果“加入日期”早于“出生日期”,我想显示一条错误消息,例如“加入日期无效”(它不会真正发生......但我想要它)。

请用一段代码建议我。

4

2 回答 2

1

我认为您有一个带有 date_of_birth 属性的用户模型,加入日期是您保存用户的日期,Active Record 会自动为您在数据库中保存的每个对象创建一个属性“created_at”。

所以你可以考虑像 date_of_join 这样的“created_at”。

下一步是向您的用户模型添加一个验证方法,如下所示:

class User < ActiveRecord::Base
 #attr_accessible :date_of_birth, ( etc ...... )
 #.....
 #.....
 validate  :date_of_join_must_be_great_than_birth
 #.....
 #.....
 private

     def date_of_join_must_be_great_than_birth
       errors.add(:date_of_birth, "date of birth is greater than date of joining" ) unless date_of_birth < created_at
     end

 end

每次保存或更新用户时,都会调用 validate 方法

您还可以了解rails中的过滤方法,希望对您有所帮助

于 2013-06-04T12:29:40.577 回答
0

您可以通过多种方式做到这一点。只需参考本教程

http://guides.rubyonrails.org/active_record_validations_callbacks.html

于 2013-06-04T13:16:43.490 回答