0

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

对 Rails 相当陌生,不禁觉得我错过了一些小东西。这个验证应该有效,不是吗?

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
4

1 回答 1

2

您正在比较两个符号: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
于 2015-09-21T15:39:22.307 回答