我在User.rb模型內部添加一個驗證器,以驗證在創建設計用戶之前給出的生日日期超過18年。未知的驗證器:在驗證日期在Rails中的'BeforeValidator'
這是我的驗證。
# user.rb
validates :birthdate, :before => lambda { 18.years.ago }, :before_message => "must be at least 18 years old"
用戶模式
# User schema
t.date "birthdate"
問題裏面是試圖保存對象時,我發現了以下錯誤。
ArgumentError in Devise::RegistrationsController#create
Unknown validator: 'BeforeValidator'
它的工作原理是在您的示例中添加'18.years.ago.to_date'。 – Martin 2012-04-25 00:41:27
你不必定義一個自定義的驗證器:)見'驗證'文檔或[我的答案](http://stackoverflow.com/a/10306906/186424) – 2012-04-25 14:15:41
@Andión,不,我不知道。而我沒有:)自定義驗證器是具有'validate_each'方法的對象。所以在閱讀文檔時你分心了。而你的代碼是完全錯誤的。你試圖比較日期和Fixnum(18)。 – jdoe 2012-04-25 14:57:52