如何在RJS中找到最旧的updated_at列的对象?

时间:2010-03-10 18:46:10

标签: ruby-on-rails ruby ajax rjs

我正在尝试在执行rjs时删除具有最早的updated_at值的对象。

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,但我在视图中有一个periodic_call_remote,它不断更新并运行上面的rjs。这一行:

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

似乎只是第一次执行,因为在“last”消息消失之后,再也没有被识别为“last”,所以我想而不是调用.last我可以找到具有最早的updated_at时间戳的对象只是删除它。我想我可能不能使用page.select这样做,因为它只调用css元素。因此,我可能无法访问Message模型中的updated_at值。有没有人建议如何用rjs删除最旧的消息?在创建新消息时,消息已在模型中自动删除。但是当RJS刷新元素时,我希望它们自动淡出。

1 个答案:

答案 0 :(得分:1)

您的解决方案可能就像删除您褪色的元素一样简单。

我的猜测是淡化视觉效果隐藏了元素,但没有将其从DOM中删除,所以最终发生的事情是你将继续淡化相同的元素,这显然没有做任何事情。