How to validate the date such that it is after today in Rails?

后端 未结 5 564
伪装坚强ぢ
伪装坚强ぢ 2021-02-03 19:07

I have an Active Record model that contains attributes: expiry_date. How do I go about validating it such that it is after today(present date at that time)? I am totally new to

5条回答
  •  北荒
    北荒 (楼主)
    2021-02-03 19:22

    Your question is (almost) exactly answered in the Rails guides.

    Here's the example code they give. This class validates that the date is in the past, while your question is how to validate that the date is in the future, but adapting it should be pretty easy:

    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
    

提交回复
热议问题