ArgumentError - 范围的错误值

时间:2018-06-15 13:38:56

标签: ruby

看起来在Ruby中增强了Range方法,我使用的是v2.5.1并且它没有按预期工作。这在以前工作,但现在不起作用。

我有这行代码:

@events = Event.where(start: params[:start]..params[:ends])

开始和结束符号期待日期值。这是我的rails控制台中的日志。

Started GET "/events.json?start=2018-05-27&end=2018-07-08&_=1529068714340" for 127.0.0.1 at 2018-06-15 16:18:34 +0300
Processing by EventsController#index as JSON
  Parameters: {"start"=>"2018-05-27", "end"=>"2018-07-08", "_"=>"1529068714340"}

但我在控制台中收到此错误 -

ArgumentError - bad value for range:
  app/controllers/events_controller.rb:7:in `index'

请问,我怎样才能获得适当的射程?

以下是您想要查看的回购 - https://github.com/mayordwells/fullcalendar-rails-demo

2 个答案:

答案 0 :(得分:2)

您正在寻找params[:ends]的参数,但参数为"end"=>"2018-07-08"

ends vs end

答案 1 :(得分:0)

您需要将字符串参数转换为Date对象

Date.parse(params[:start])..Date.parse(params[:ends])