[ruby-it] form search ajax e problema di rendering.

Mauro mrsanna1 a gmail.com
Lun 15 Mar 2010 23:18:30 CET


L'index del controller X e':

def index
    fullname = params[:search].split(" ") if params[:search]
    if fullname
      firstname = fullname[0]
      lastname = fullname[1]
    end
    @rusers = Ruser.search(firstname.to_s, lastname.to_s, params[:page])

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @rusers }
    end
  end

la pagina .erb e':

<% form_tag do %>
  <p>
    <%= label_tag :'Cerca nominativo:' %>
    <%= text_field_tag :search, params[:search] %>
    <%= image_tag("indicator.gif", :id => "spinner", :style =>
"display: none;") %>
  </p>
<% end %>
  <%= observe_field(:search,
                 :frequency => 0.5,
                 :update => :search_hits,
                 :loading => "Element.show('spinner')",
                 :complete => "Element.hide('spinner')",
                 :url => rusers_path, :method => :get,
                 :with => "'search=' + escape(value)")%>
<div id="search_hits">

<table>
  <tr>
    <th>First name</th>
.
.
.
.
.
</table>
</div>

In pratica l'index mi mostra un elenco di utenti, se esistono, e un
form di ricerca tramite ajax.
Il problema e' il rendering in quanto in pratica, inserendo dei valori
nel form, mi viene duplicato il layout all'interno del div
"search_hints"
Non posso mettere nell'action index "render :layout => false" in
quanto mi da un Double Render Error e se metto "render :layout=> false
and return if params[:search]", come suggerito in
http://guides.rubyonrails.org/layouts_and_rendering.html, torno al
punto di partenza nel senso che mi viene ripetuto il layout
all'interno del div.
Quale soluzione si potrebbe adottare?


More information about the Ml mailing list