0
我试图验证来自某个用户的输入。特别是我试图验证date_select
和time_select
的输入。我处理类似下面的输入:查看的Rails时间比较
输入标签:
<%= date_select :date, 'date', use_short_month: true %>
<%= time_select :Starttime , 'Starttime', default: Time.now, minute_step: 30,:ignore_date => true %>
转换的输入时间对象(控制器):
@Start = Time.new(date['date(1i)'].to_i, date['date(2i)'].to_i, date['date(3i)'].to_i, t_start["Starttime(4i)"].to_i, t_start["Starttime(5i)"].to_i)
如果我在显示@Start
查看一切正常! 2013-08-18 16:00:00 +0200
现在我试着检查有效输入的时间/日期。所以我在控制器中做了这个功能:
def check_date
if @Start < Time.now
flash[:notice ]= "Booking has to be in the future!"
return false
else
return true
end
end
但它不起作用。 ERR_MSG。出现undefined method '<' for nil:NilClass
。我不知道为什么。查看输出Time.now
和@Start
是相同的。
我也试过这与DateTime对象,而不是时间对象,但同样的错误出现。有任何想法吗?
编辑:
Index操作:
def index
t_start= params[:Starttime]
date= params[:date]
if t_start && date
@Start = Time.new(date['date(1i)'].to_i, date['date(2i)'].to_i, date['date(3i)'].to_i, t_start["Starttime(4i)"].to_i, t_start["Starttime(5i)"].to_i)
end
check_date
@tables = Table.search(params[:search])
end
感谢
以及您如何调用该功能? –
在带有check_date的索引操作中 – Mike
粘贴您的索引方法以及 –