范围日期直到日期+周

时间:2013-11-20 13:53:37

标签: ruby-on-rails ruby-on-rails-4

我希望在1周的范围内从我的弦乐日期(11-20-2013)获取所有记录start_date(所以不是正常的creation_date)。

我之前从未真正使用过Rails中的作用域,所以我宁愿迷失在这里。我应该使用.where()吗?如果是这样,我如何在此范围内添加start_date + 1周?

我尝试过类似的事情:

  if params[:startdate]
    group = Group.find_by_id(params[:group_id]).where(:start_date => params[:startdate]..params[:startdate] + 1.weeks)
  end

抛出:can't convert ActiveSupport::Duration into String

1 个答案:

答案 0 :(得分:1)

因为当你需要DateTime时params[:startdate]是String。

您可以尝试解析它

startdate = DateTime.parse(params[:startdate]) rescue nil
if startdate
  group = Group.find_by_id(params[:group_id]).where(:start_date => startdate..startdate + 1.weeks)
else
  # you get wrong startdate
end