我希望在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
答案 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