2013-11-20 4 views
0

Я хочу получить все мои записи, которые имеют start_date (так что не нормальное создание_данных) с моей строчной даты (11-20-2013) в пределах 1 недели.Срок действия до даты + недели

Я никогда раньше не использовал обзор в 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

Поскольку params[:startdate] является строка, когда вам нужно DateTime.

Вы можете попытаться разобрать его

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 
+0

Извините за поздний ответ. Я получаю 'undefined method where 'для # ' – CaptainCarl

+0

Является ли 'Group' моделью (класс' ActiveRecord :: Base')? – gotva

+0

Да, это модель. – CaptainCarl

Смежные вопросы