2013-05-22 12 views
5

Cosa sto facendo in modo errato che mi sta dando una matrice vuota da questo comando?Perché il mio Model.where() restituisce un array vuoto (quando sono sicuro che ci siano corrispondenze)?

Item.where(:load_date => Date.today + 2) 

Ecco il mio Rails Console:

.9.3-p194 :024 > Item.first.load_date 
Item Load (0.3ms) SELECT "items".* FROM "items" LIMIT 1 
=> Fri, 24 May 2013 
1.9.3-p194 :025 > Item.where(:load_date => Date.today + 2) 
Item Load (0.5ms) SELECT "items".* FROM "items" WHERE "items"."load_date" = '2013-05-24' 
=> [] 
1.9.3-p194 :026 > Item.first.load_date == Date.today + 2 
Item Load (0.3ms) SELECT "items".* FROM "items" LIMIT 1 
=> true 

Articolo Modello:

... 
# load_date  :date 
... 

class Item < ActiveRecord::Base 
attr_accessible :bt_num, :dept, :formula, :item_code, :load_date, :prod_comments, :qc_comments, :qc_tech, :qty_in_kg, :qty_in_liters, :rm_ok_by, :series, :status, :time_to_produce, :vat 
... 
+0

Qual è il valore di 'load_date' nel database? – xdazz

+0

Qual è il tuo database? Ho provato qui su mysql e ha funzionato –

+0

Datebase è sqlite3. Item.first.load_date == Ven, 24, maggio 2013 e la classe è 'Data' – collenjones

risposta

1

provare questi

Item.where(:load_date => (Date.today + 2).strftime) 
    or 
Item.where("Date(load_date) =?", (Date.today + 2).strftime) 
+0

Il secondo funziona ma non il primo (il primo restituisce ancora in bianco). Perché la formattazione della data dovrebbe importare ?? E perché non dovrebbe il primo lavoro ?? – collenjones

+0

load_date è la colonna di datetime ma vogliamo solo Data da lì quindi ho usato Date (load_date) .... e strftime usato perché convertirà (Date.today + 2) nel formato "2013-05-24" e nei valori del database vengono salvati come "2013-05-24 12:12" anziché "fridat 24 maggio 2013" –

+0

Perché non dovrebbe essere possibile visualizzare Item.first.load_date "2013-05-24 12:12" anziché " Ven, 24 maggio 2013 "? Quando controllo la classe di Item.first.load_date, è anche 'Data'. Apprezzo l'aiuto, sto solo cercando di capire cosa sta succedendo. – collenjones

Problemi correlati