2013-03-22 78 views
0

我有一個生成事件報告的報告頁面。有一個日期選擇器,用戶可以放入一個日期範圍(例如3月1日 - 3月20日),並返回事件的所有事件:start_at在該範圍內開始。我最近從Rails 3.0.11升級到了Rails 3.2.13(我小心地直接按照RailsCasts的情節,從3.0跳到3.1,然後從3.1跳到3.2),並注意到我的報告不再工作,但我沒有做任何工作對事件控制器或事件模型的更改。我的代碼如下:在Rails 3.2中查詢日期範圍不起作用

events_controller.rb

def reports 
    if !params[:report_start].blank? && !params[:report_end].blank? 
    @events = current_user.events.report(params[:report_start], params[:report_end]) 
    else 
    @events = current_user.events.where(params[:search]).order(sort_column + " " + sort_direction) 
    end 

    respond_to do |format| 
    format.html do 
     @events = @events.paginate(:per_page => 5, :page => params[:page]) 
    end 
    format.xml { render :xml => @events } 
    format.pdf do 
     pdf = ReportPdf.new(@events) 
     send_data pdf.render, filename: "Event_Report.pdf", 
          type: "application/pdf" 
    end 
    end 
end 

event.rb

def self.report(report_start, report_end) 
    where(:start_at => report_start.to_date..report_end.to_date) 
end 

有一個像這樣的查詢語法在升級過程中的某個地方改變了嗎?

我驗證了Rails仍然以相同的格式保存日期,並且在其他地方正常工作。在Rails的控制檯日期輸出如下:

start_at: "2013-04-25 00:00:00" 

任何幫助,將不勝感激,因爲這是推動我瘋了,看起來正確的給我。謝謝!

編輯:我發現this Stack Overflow post的話題,它看起來像響應說做我的方式,但什麼也沒有發生。

http://localhost:3000/reports?utf8=%E2%9C%93&direction=&sort=&event%5Breport_start%5D=&event%5Breport_end%5D=&commit=Generate+Report 
+0

我不得不說,我使用Rails中3.2.12同一查詢沒有任何問題。你確定問題出現在日期範圍內嗎?什麼東西現在不正確? – Pigueiras 2013-03-22 20:31:20

+0

網址變化,它的行爲就像處理查詢一樣,但頁面上沒有任何內容正在改變。如果我有5個日期是非常分散,我有3月2日一個事件,我可以通過它的日期範圍3月1-4日,應只返回一個事件,而是所有事件都被顯示。 – Robert 2013-03-22 20:32:54

+0

我認爲這些參數是錯誤的,你可以在這裏查看你點擊執行報告的位置嗎? – Pigueiras 2013-03-22 21:33:07

回答

0

試試這個:

def self.report(report_start, report_end) 
    where('start_dt >= ? and end_dt <= ?',report_start,report_end) 
end 
+0

我知道我回答我的問題,但我想後萬一別人運行到解決這個問題,因爲我能得到這個工作。這個問題似乎是由於Rails處理時間不同造成的。新代碼如下(鏈接代碼片段): [events_controller.rb](http://pastie.org/7106998), [event.rb(model)](http:// pastie。組織/ 7107013), [報告視圖(http://pastie.org/7107022) – Robert 2013-03-25 05:22:17

1

我知道我回答我的問題,但我想

的URL並cliking生成報告,併產生看起來網址如下後更改發佈解決方案,以防其他人遇到這個問題,因爲我能夠得到這個工作。這個問題似乎是由於Rails處理時間不同造成的。新代碼如下:

http://pastie.org/7107095