[ruby-it] Ajax, Observers e autorefresh
Luca G. Soave
luca.soave a gmail.com
Mer 10 Mar 2010 10:51:09 CET
Ciao a tutti, mi servirebbe una dritta su come implementare
l'autorefresh di una lista di posts.
L'idea e', che se un utente sta guardando una pagina che lista i suoi
post e quelli del suo gruppo, dovrebbe vedere arrivare i nuovi post
eseguiti dagli altri in tempo reale, cioe dinamicamente senza fare il
reload della pagina.
Non ho molta dimestichezza con Ajax, ma dovrebbe avere a che fare con i
metodi di ActionView::Helpers::PrototypeHelper:
* build_callbacks
* build_observer
* button_to_remote
* evaluate_remote_response
* form_remote_for
* form_remote_tag
* link_to_remote
* method_option_to_s
* observe_field
* observe_form
* options_for_ajax
* periodically_call_remote
* remote_form_for
* remote_function
* submit_to_remote
* update_page
* update_page_tag
la pagina che devo refreshare e' l'index dell'home controller:
--------------------------------------------------------------
root a webby2066:/var/rails/flitter# cat ./app/views/home/index.html.erb
...
<%= render :partial => "flits_list", :locals => { :flits => @flits }%>
--------------------------------------------------------------
che sostanzialmente chiama un parziale che implementa ogni singolo post:
--------------------------------------------------------------
root a webby2066:/var/rails/flitter# cat
./app/views/home/_flits_list.html.erb
<ul id="flits_list">
<% flits.each do |flit| %>
<li<% if flits.first == flit %> class="first"<% end %>>
<%= image_tag flit.user.gravatar_url %>
<div class="flit_message_container">
<%= link_to flit.user.username,
user_flits_path(flit.user.username) %>
<%= h flit.message %>
<div class="time_ago">
<%= distance_of_time_in_words_to_now(flit.created_at) %> ago
</div>
</div>
<div class="clear"></div>
</li>
<% end %>
</ul>
--------------------------------------------------------------
in un controller diverso da home, ho un "evento trigger" che e'
flit.save! e dovrebbe scatenare il refresh di home/index.html.erb
Non mi e' del tutto chiaro pero' se c'e' un metodo tra quelli elencati
prima, idoneo a rilevare l'evento trigger flit.save! che in sostanza
salva un nuovo post nel DB.
Ringrazio in anticipo per ogni suggerimento
Ciao Luca
--
Posted via http://www.ruby-forum.com/.
More information about the Ml
mailing list