2009-01-29 6 views
0

Je souhaite obtenir les objets mis à jour dans les 10 dernières secondes à partir de la recherche d'ActiveRecord.Mise à jour des objets dans les 10 dernières secondes à partir de la recherche d'ActiveRecord

J'ai essayé de faire ce

@chats = Chat.find(:all, :conditions => ["updated_at > ?", 10.seconds.ago]) 

ainsi que

@chats = Chat.find(:all, :conditions => ["updated_at > ?", Time.now-10.seconds]) 

et même

@chats = Chat.find(:all, :conditions => {:updated_at => 10.seconds.ago..0.seconds.ago}] 

Mais je ne peux toujours pas faire fonctionner :(

EDIT: je mets à jour la colonne d'anot son application pour la garder en vie et je regarde toutes les lignes que j'ai gardé en vie dans les 10 dernières secondes, pour disposer des chats morts.

+0

À quoi ressemblent les requêtes résultantes dans votre journal? –

Répondre

2

Etes-vous sûr que vous interrogez dans la colonne de droite? Je pense que vous pourriez avoir besoin de regarder l'horodatage created_at à la place. Je ne connais pas votre application, mais je suis surpris que vous mettiez à jour les chats existants, au lieu de simplement en insérer de nouveaux.

Alors ... si mon hypothèse est correcte, cela pourrait être ce que vous cherchez:

@chats = Chat.find(:all, :conditions => ["created_at > ?", 10.seconds.ago]) 

Sinon ... s'il vous plaît fournir un peu plus d'informations. La requête devrait fonctionner comme vous l'avez, et je suppose que update_at ne sera peut-être pas mis à jour.

+0

Salut. Merci d'avoir répondu. J'ai mis à jour le post. Fondamentalement, je n'ai besoin d'afficher que des colonnes vivantes et je modifie une colonne pour rester en vie. – mannicken

+0

Je vérifie la date/heure manuellement dans SQL et il semble correct. – mannicken

+0

Avez-vous confirmé que la date est mise à jour dans votre application Rails et que la date est dans le bon format pour votre base de données? –

0

Le problème était dans UTC par défaut de Rails. Je l'ai changé à config.time_zone = 'Pacific Time (US & Canada)' et maintenant ça marche bien :)

+0

Ahhhhh, oui. Je suppose que cela le ferait, si vos systèmes n'utilisaient pas le même fuseau horaire. –