Non vincola il tipo di risposta?
Mi spiego meglio: se in una action ho
respond_to do |format|
if @delivery.save
format.html { redirect_to([@ruser, @delivery], :notice =>
‘Delivery was successfully created.’) }
format.xml { render :xml => @delivery, :status => :created,
:location => @delivery }
else
format.html { render :action => “new” }
format.xml { render :xml => @delivery.errors, :status =>
:unprocessable_entity }
end
end
mi aspetto che il tipo di risposta sia limitato a html e xml e non js.
Eppure se la action viene invocata tramite richiesta ajax quindi <%=
form…: remote => true %>
viene invocata la action show come in format.html {
redirect_to([@ruser, @delivery] ma viene cercato il template
show.js.erb.
Ma se nel respond_to la risposta tipo js non e’ indicata com’e’ che
viene cercato il template js?
show.js.erb.
Ma se nel respond_to la risposta tipo js non e’ indicata com’e’ che
viene cercato il template js?
No, non la vincola. Cosi’ come se non specifichi un comportamento per
il format html il default e’ quello di cercare azione.html.erb, cosi’
se non lo specifichi per il format js (che e’ quello associato alla
:remote che passi nella form) il default e’ cercare azione.js.erb
In pratica, se vuoi semplicemente fare la redirect basta che togli la
remote, mentre se vuoi fare qualche altra cosa o usi il template
.js.erb che ti viene richiesto o un rjs inline (quello “do |page|”).
else
redirect_to([@ruser, @delivery] ma viene cercato il template
remote, mentre se vuoi fare qualche altra cosa o usi il template
.js.erb che ti viene richiesto o un rjs inline (quello “do |page|”).
Scusate se riprendo questo vecchio thread ma ancora mi sfugge qualcosa.
In due applicazioni diverse uso del codice javascript.
Nella prima:
Qui chiamo l’action index ma mi dice che manca il template index.js.erb.
Perche’ nella prima mi restituisce la pagina .html.erb mentre il
secondo codice mi chiede la .js.erb?
:location => @delivery }
viene invocata la action show come in format.html {
In pratica, se vuoi semplicemente fare la redirect basta che togli la
$(‘#sector_select’).val()}, function(data) {
$(‘#spinner’).show();
$.get(‘/rusers’, {fullname: $(‘#nameSearch’).val()}, function(data) {
$(‘#spinner’).hide();
$(“#results”).html(data);
});
});
});
Qui chiamo l’action index ma mi dice che manca il template index.js.erb.
Perche’ nella prima mi restituisce la pagina .html.erb mentre il
secondo codice mi chiede la .js.erb?
Scusate ho sbagliato a postare il secondo codice, in effetti anche il
secondo mi restituisce la pagina .html.erb il seguente invece mi
chiede la .js.erb: