昨天我問了一個關於這個問題,但它被混淆了,沒有意義,所以我要把它歸結爲核心問題。通過DateTime搜索ActiveRecord不起作用
我有一個entries
表。保存新記錄時,entries_controller
會將時間添加到date
列中,該列記錄爲日期時間。在new
方法,我宣佈一個新的DateTime像這樣:
@entry.date = DateTime.new(params[:year].to_i, params[:month].to_i, params[:day].to_i)
然後我把它作爲與formtastic一個隱藏字段:
<%= f.input :date, :as => :hidden %>
一旦條目被保存到數據庫中,日期字段看起來像2011-02-10 00:00:00
。一切工作都按計劃進行,但當我試圖通過查詢date
字段來檢索該條目時,我得到了nil
。
我已經試過:
search_date = DateTime.new(2011,2,10)
Entry.find_by_date(search_date)
=> nil
我甚至試過用字符串,這沒有任何意義,因爲它是一個時間字段進行搜索。
search_time = '2010-02-10 00:00:00'
Entry.find_by_date(search_date)
=> nil
我在做什麼錯在這裏?爲什麼我不能按日期檢索記錄?
沒有。這樣會拋出大量錯誤,並將其更改爲:`Entry.where(「date ='#{search_date}'」)`返回nil – bjork24 2011-02-10 18:46:20
奇怪的是,我在我自己的應用程序中測試了它,並且似乎工作正常。你能打印堆棧跟蹤嗎? – ferdyh 2011-02-11 09:03:59