看完之後http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html我似乎無法找到我要找的東西。我的郵件列表到達24之後刪除最早的消息,一個簡單的模型,該模型是這樣的簡單:困惑於哪個Prototype幫手使用
class Message < ActiveRecord::Base
after_create :destroy_old_messages
protected
def destroy_old_messages
messages = Message.all(:order => 'updated_at DESC')
messages[24..-1].each {|p| p.destroy } if messages.size >= 24
end
end
存在被用於添加新郵件的郵件列表下面的消息的形式。 我正在使用Prototype/RJS將新消息添加到列表頂部。 create.rjs:
page.insert_html :top, :messages, :partial => @message
page[@message].visual_effect :grow
#page[dom_id(@messages)].replace :partial => @message
page[:message_form].reset
我index.html.erb很簡單:
<div id="messages">
<%= render :partial => @messages %>
</div>
<%= render :partial => "message_form" %>
當有新郵件添加他們出現就好了,但是當24日消息限制已經剛剛達到它不斷添加消息並且不刪除舊消息。理想情況下,我希望他們淡出,因爲新的添加,但他們可以消失。 create.rjs中的註釋行實際上起作用,它刪除了過期的消息,但添加新消息時我失去了視覺效果。有沒有人有建議如何完成添加和從這個簡單的列表中刪除消息與兩個效果?幫助將不勝感激。謝謝閱讀。 P.S .:會periodic_call_remote在這種情況下有幫助嗎?
問題是消息未從數據庫中刪除,或者消息在AJAX請求期間沒有從DOM中刪除? – 2010-03-07 20:41:17
他們正在從數據庫中刪除,我不能讓他們消失,因爲新的消息被添加。我只想要一次顯示24條消息。所以當一個消息添加到ajax時,底部最舊的消息也應該用ajax去除。我一直在看的源代碼是和我喜歡google的rjs cheatsheet pdf。他們並不完全有幫助。感謝您的快速響應順便說一句。 –
BasicObject
2010-03-07 21:09:35