我有一個生成事件報告的報告頁面。有一個日期選擇器,用戶可以放入一個日期範圍(例如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
我不得不說,我使用Rails中3.2.12同一查詢沒有任何問題。你確定問題出現在日期範圍內嗎?什麼東西現在不正確? – Pigueiras 2013-03-22 20:31:20
網址變化,它的行爲就像處理查詢一樣,但頁面上沒有任何內容正在改變。如果我有5個日期是非常分散,我有3月2日一個事件,我可以通過它的日期範圍3月1-4日,應只返回一個事件,而是所有事件都被顯示。 – Robert 2013-03-22 20:32:54
我認爲這些參數是錯誤的,你可以在這裏查看你點擊執行報告的位置嗎? – Pigueiras 2013-03-22 21:33:07