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

ユーザーを保存または更新するたびに、検証メソッドが呼び出されます

Rails のフィルター メソッドについても学ぶことができます。これが役立つことを願っています。

于 2013-06-04T12:29:40.577 に答える
0

これはさまざまな方法で実行できます。このチュートリアルを参照してください。

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

于 2013-06-04T13:16:43.490 に答える