Nella mia attuale app per rotaie sto usando una libreria ajax uploader che richiede di rispondere con json {success:true}
per indicare che un file è stato caricato con successo.Rails JS Response, rende sia lo stato che il modello?
Nella mia app i file sono immagini, e dopo il caricamento vorrei aggiungere questo alla pagina. Normalmente avrei fatto qualcosa di simile:
respond_to do |format|
format.html { redirect_to @resource, :notice => 'Created.' }
format.js
end
Nell'esempio sopra la mia risposta JS renderebbe il modello appropriato, come ad esempio create.js.erb
che potrebbe dire qualcosa di simile ...
$('#resources').append('<%= escape_javascript(render '@resource') %>');
Ecco come ho fatto cose come commenti Ajax ecc. in passato. Ora, per ottenere l'uploader lavorando il mio respond_to
blocco attualmente fa questo:
format.js { render :json => { :success => true } }
Questo rende il lavoro uploader, ma sembra precludere me aggiungendo parziali resi alla pagina, come ho normalmente con una risposta Ajax.
La mia domanda è, c'è un modo per realizzare entrambi? In caso contrario, come compilare la pagina con oggetti sottoposti a rendering dopo che sono stati creati correttamente?
Questa idea funziona. Non sapevo di 'rendering_to_string', ma nei test ho scoperto che potevo usare anche' .getScript' nella callback per recuperare il partial. Il tuo metodo è più pulito. Grazie! – Andrew
Una nota ... per default 'escape_javascript' non è disponibile per il controller, e non è necessaria perché il metodo' render: json' lo fa comunque. – Andrew
cool, felice che aiuti. Ha senso che "escape_javascript" non funzioni lì, non so cosa stavo pensando. Grazie per il feedback sulla risposta – danivovich