私は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
カスタムバリデータを定義する必要はありません:) 'validates'のドキュメントや[私の答え](http://stackoverflow.com/a/10306906/186424) –
@Andiónを参照してください。そして、私はしなかった:)カスタムバリデータは 'validate_each'メソッドを持つオブジェクトです。読書中に気を散らしてしまった。あなたのコードは完全に間違っています。あなたはDateとFixnum(18)を比較しようとしています。 – jdoe