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 %>
<%= label_tag :'Cerca nominativo:' %> <%= text_field_tag :search, params[:search] %> <%= image_tag("indicator.gif", :id => "spinner", :style => "display: none;") %>
<% 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)")%>First name |
---|
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
Layouts and Rendering in Rails — Ruby on Rails Guides, torno al
punto di partenza nel senso che mi viene ripetuto il layout
all’interno del div.
Quale soluzione si potrebbe adottare?