0

Rails モデルの 1 つで簡単な検証を行いましたが、思い通りにエラーが発生していないようです。

before_save :check_future_date

 private  
   def check_future_date
     puts "=============================================================="
     puts self.article.date
     puts Date.today
     if self.article.date <= Date.today
       puts "error!!!!!!!!!!!!!!!!!"           
       errors[:base] << "Sorry, you must post at least a day in advance"
     end
   end

コンソールに次のように表示されるため、ロジックがトリガーされていることがわかります。

 ==============================================================
 2013-04-06
 2013-04-29
 error!!!!!!!!!!!!!!!!!

ただし、レコードは引き続き保存され、エラー メッセージは表示されません。私も試しました:

errors.add(:base, 'Sorry, you must post at least a day in advance') 
4

1 に答える 1

1

を実行する代わりに、カスタム検証メソッドを登録する必要がありますbefore_save

変化する

before_save :check_future_date

validate :check_future_date
于 2013-04-30T01:47:31.107 に答える