2017-08-16 97 views
0

我正在嘗試創建一個Rails控制器查詢,該查詢可以查找最近日期不在將來的列中的記錄(這就是爲什麼我無法做到簡單order聲明)。我發現this post,但答案(MyModel.where("created_at < ?", 2.days.ago))引發了一些錯誤。查找最近的Rails記錄過去

我有這個工作正常,但如果開始在它選擇未來一週有說,不是最近的一個過去:

@most_recent = Plan.order("week_starting").last 

任何想法,以如何做到這一點正確Rails的?

這裏是我的整個plans#index方法:

def index 
    @plans = Plan.where(user_id: current_user.id) 
    @plan = Plan.new 
    @recent = Plan.order("week_starting").last <<<THIS LINE 
    @recipes = Recipe.where(user_id: current_user.id) 
    @monday = Recipe.where(id: @recent.monday)[0] 
    @tuesday = Recipe.where(id: @recent.tuesday)[0] 
    @wednesday = Recipe.where(id: @recent.wednesday)[0] 
    @thursday = Recipe.where(id: @recent.thursday)[0] 
    @friday = Recipe.where(id: @recent.friday)[0] 
    @saturday = Recipe.where(id: @recent.saturday)[0] 
    @sunday = Recipe.where(id: @recent.sunday)[0] 
    end 

基本上,我需要的​​爲它具有week_starting值最接近Date.today仍然在過去的當前用戶。

回答

0

入住這

Plan.where("created_at > ?", Time.now.beginning_of_week).order("week_starting").last 
+0

這可能不是很清楚,但我正在尋找最近的未來記錄。這兩天的事情只是一個來自另一個問題的例子... – Liz

+0

隨着你的代碼(改編),我認爲這會產生像'Plan.where(「week_starting <?」,Time.now).limit(1)',這給了我一個錯誤,說'未定義的方法'week_starting'爲#' – Liz

+0

是計劃表中的week_starting字段? –

0

這是否對你的作品?

MyModel.where("created_at < ? ", Time.now).order('created_at DESC').first 

不知道你爲什麼有week_starting那是什麼。但爲了獲得最近的記錄,它應該足夠了