验证开始和结束时间属性

时间:2015-09-21 15:30:44

标签: ruby validation ruby-on-rails-4 comparison time-select

我正在尝试验证我认为相当简单的事情。我有两个time_select属性“start_time”和“end_time”。我只是试图在控制器中验证用户输入的结束时间是否等于开始时间或开始时间之前。根本没有日期。我有一个验证方法,但无论用户输入什么,它总是出错。

相当新的铁轨并不禁让我觉得我缺少一些小东西。这种验证不应该起作用吗?

class Casenote < ActiveRecord::Base
 validate :end_must_be_after_start

 belongs_to :servicelog
 default_scope { order(:id) }


 private

 def end_must_be_after_start
   if :start_time >= :end_time
     errors.add(:end_time, "must be after start time")
   end
 end

end

1 个答案:

答案 0 :(得分:1)

您正在比较两个符号:start_time:end_time。您需要比较两个属性start_timeend_time

def end_must_be_after_start
  if start_time >= end_time
    errors.add(:end_time, "must be after start time")
  end
end