Rails:验证开始时间在停止之前,DateTime

Jay*_*Jay 1 ruby validation ruby-on-rails

我试图用来validates_timeliness确保SliderImage.start始终存在SliderImage.stop

class SliderImage < ActiveRecord::Base

  validates_datetime :start, :stop
  validates :start, :timeliness => {:before => stop}

end
Run Code Online (Sandbox Code Playgroud)

但是当然stop还没有定义。我该怎么做?

小智 5

在不安装任何gem的情况下使用此验证的更简单方法是调用验证方法:

class Course < ActiveRecord::Base
  validate :start_date_before_end_date

  def start_date_before_end_date
    if self.start_date > self.end_date
      errors.add(:start_date, "Start date should be before end date")
    end
  end
end
Run Code Online (Sandbox Code Playgroud)