我是这个Rails世界的新手,很抱歉,如果错误太明显了。
我正在构建一个搜索表单。我设法比较字符串。然而,我正在努力与日期。
形式如下:
= select_datetime Date.today, :prefix => :search_start_date
这是我正在尝试的查询(注意:事件中有效列中的start_date)
@events = @events.where("start_date > ?", "%#{params[:search_start_date]}%")
因为一个是约会而另一个是约会时间我虽然不得不施展它们。然而,我所尝试的一切都没有效果。
有什么建议吗?感谢
答案 0 :(得分:1)
您可以将params放在Time对象中:
@time = Time.new(params[:search_start_date][:year], params[:search_start_date][:month],params[:search_start_date][:day] , params[:search_start_date][:hour], params[:search_start_date][:minute])
@events = Event.where("start_date > ?", @time)
它应该工作。但是,您应该将start_date设置为datetime类型。确实如果您的活动日期为2012年4月17日,并且您正在寻找在2012年4月17日9:00之后开始的活动,则活动将不会显示。只会显示4月18日及之后开始的活动。
答案 1 :(得分:0)
你可以尝试一下它会给你带来更好的结果
@time = params[:search_start_date]+" "+"00:00:00"
@events = @events.where("start_date > ?", @time)
尝试它,它会让你的时间大于00:00:00
答案 2 :(得分:0)
尝试使用解析:
@events = @events.where("start_date > ?", "%#{Date.parse(params[:search_start_date])}%") if !params[:search_start_date].nil?