Sto completando un caricamento di avatar e ritagliare usando ajax submit.Rails ajax con funzione POST: perché manca il modello?
Sto inviando tramite ajax l'immagine di base64 e quindi converto la mia immagine per carrierwave.
Tutto funziona correttamente, tranne la risposta ajax: modello mancante.
Questa è la mia chiamata AJAX:
$.ajax({
type: "post",
dataType: "json",
url: "/profile/update_avatar",
data: { image: canvas.toDataURL() }
})
.done(function(data) {
// You can pull the image URL using data.url, e.g.:
$('.user-image').html('<img src="'+data.url+'" />');
});
E questo è il mio controller:
def update_avatar
respond_to do |format|
if current_user.update_cropped_avatar(params[:image])
format.js
format.html { render :nothing => true, :notice => 'Update SUCCESSFUL!' }
else
format.html { render :action => "edit" }
format.json { render :json => current_user.errors, :status => :unprocessable_entity }
end
end
fine
Non ho bisogno di rendere template ... ma l'errore è :
Missing template profiles/update_avatar, application/update_avatar with {:locale=>[:it], :formats=>[:js, :html], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :haml]}.
Perché?
nel mio js Ho anche $ ('. User-image'). Html ('') per aggiornare l'immagine. Come posso unirlo con il tuo codice? –
Con il mio codice, tornerai ancora l'oggetto 'image' nella variabile' data' in JS. Quello che dovrai determinare è cosa c'è dentro l'oggetto 'data', e poi chiamare' url' -> se potresti mettere 'console.log (dati)' nel tuo JS 'done', e fammi sapere risultati, sarò in grado di aiutarti meglio –
Sto provando ma nel tuo codice c'è qualcosa che non capisco, dove devo inserire respond_to: html,: json? Nella parte superiore del mio controller? E tu hai qualcosa di sbagliato nel nidificare, non riesco a capire perché hai tre estremità. –