17 Oct
duccio

duccio il 17 October 2006 parla di Rails Snippet

Aggiornamento del sortable_element dopo l’aggiunta di un elemento in Ajax

Dopo l’inserimento di un elemento ad una lista, se questa era ordinabile, l’ultimo elemento non viene incluso nell’ordinamento. Per evitare questo problema vi riporto una soluzione trovata su http://www.ruby-forum.com/

Quello che dovete fare è creare un parziale _sortable_element.rhtml:

    1 <%= sortable_element('item-list', 
    2       :tag => 'div',
    3       :handle => 'cdrag',
    4       :url => {:action => "order", :id => goal}) %> 

Nelle viste mettere:

    1 <div id="sortable">
    2 <%= render :partial => "sortable_element", :locals => {:goal => nil}%>
    3 </div>

Poi nell’azione usata per l’inserimento in Ajax dovete rirenderizzare il sortable_element:

    1 def add_section
    2   ...
    3   ...
    4   render :update do |page|
    5     page.visual_effect(:fade, "add-section")
    6     page.insert_html(:bottom, "item-list", render(:partial => "item", :object => @item))
    7     page.replace_html 'sortable', :partial => 'sortable_element', :locals => 
    8     {:goal => @item}
    9   end
   10 end

Scrivi un commento