Как найти объект с самым старым столбцом updated_at в RJS? - PullRequest
0 голосов
/ 10 марта 2010

Я пытаюсь удалить объект с самым старым значением updated_at при выполнении rjs.

page.insert_html :top, :messages, :partial => @message
page[@message].visual_effect :grow
page[:message_form].reset
Message.old_messages.each do |m|
  page.remove(m.id)
end
page.delay(1) do 
  page.select('.message').last.visual_effect :fade
end

Я использую .last там прямо сейчас, но у меня есть periodical_call_remote в представлении, которое постоянно обновляет и запускает rjs выше. Линия:

page.select('.message').last.visual_effect :fade

, кажется, выполняется только в первый раз, потому что после того, как исчезает сообщение «последнее», больше ничего не распознается как «последнее», поэтому я решил вместо вызова .last я смог найти объект с самой старой отметкой времени updated_at и просто удалите это вместо этого. Я думаю, что я, вероятно, не могу сделать это с помощью page.select, поскольку он вызывает только элементы CSS. И поэтому у меня, вероятно, нет доступа к значениям updated_at в модели сообщений. У кого-нибудь есть предложения о том, как выполнить удаление самого старого сообщения с помощью rjs? Сообщения уже автоматически удаляются в модели при создании новых сообщений. Но я хочу, чтобы они автоматически исчезали, когда RJS обновляет элемент.

1 Ответ

1 голос
/ 11 марта 2010

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

Полагаю, визуальный эффект затухания скрывает элемент, но не удаляет его из DOM, поэтому в конечном итоге вы продолжите затухать тот же элемент, который явно ничего не делает.

...