2009-01-29 4 views
0

Я хочу получить объекты, которые обновляются за последние 10 секунд из поиска ActiveRecord.Получение объектов за последние 10 секунд из поиска ActiveRecord

Я попытался сделать это

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

, а также

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

и даже

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

Но я до сих пор не могу заставить его работать :(

EDIT: я обновляю столбец из anot ее приложение, чтобы сохранить его, и я смотрю на все строки, которые я оставил в живых за последние 10 секунд, чтобы уничтожить мертвые чаты.

+0

Как выглядят результирующие запросы в вашем журнале? –

ответ

2

Вы уверены, что вы запрашиваете правую колонку? Я думаю, что вам, возможно, потребуется посмотреть на созданную метку времени. Я не знаю вашего приложения, но я удивлен, что вы обновляете существующие чаты, а не просто вставляете новые.

Так что ... если мое предположение верно, то это может быть то, что вы ищете:

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

Если нет ... пожалуйста, предоставьте немного больше информации. Запрос должен работать так, как он есть, и я предполагаю, что update_at может не обновляться.

+0

Привет. Спасибо за ответ. Я обновил сообщение. В принципе, мне нужно отображать только живые столбцы, и я изменяю колонку, чтобы поддерживать ее. – mannicken

+0

Я проверяю дату/время вручную в SQL и выглядит корректно. – mannicken

+0

Подтвердили ли вы, что дата обновляется в вашем приложении Rails и что дата находится в правильном формате для вашей базы данных? –

0

Проблема была в UTC-умолчанию Rails. Я изменил его на config.time_zone = 'Pacific Time (US & Canada)'и теперь он работает хорошо :)

+0

Ahhhhh, да. Думаю, это сделало бы это, если бы ваши системы не использовали один и тот же часовой пояс. –