Railsで日付が今日以降であることを検証するにはどうすればよいですか?
概要
属性 expiry_date を含むアクティブ レコード モデルがあります。今日(その時点での現在の日付)以降であることを検証するにはどうすればよいですか?私はRailsとRubyにまったく慣れていませんが、これに正確に答える同様の質問を見つけることができませんでした。
Rails 3.1.3 と Ruby 1.8.7 を使用しています
解決策
あなたの質問は、Rails ガイドで (ほぼ) 正確に答えられています。
彼らが提供するサンプルコードは次のとおりです。このクラスは日付が過去であることを検証しますが、あなたの質問は日付が未来であることを検証する方法ですが、それを適応させるのは非常に簡単です。
class Invoice < ActiveRecord::Base
validate :expiration_date_cannot_be_in_the_past
def expiration_date_cannot_be_in_the_past
if expiration_date.present? && expiration_date < Date.today
errors.add(:expiration_date, "can't be in the past")
end
end
end