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')