PDA

Visualizza la versione completa : [Rails] render :partial nel controller


mlipreri
19-06-2009, 13:02
Ciao,
se faccio una cosa del genere


def create
if params[:Filedata]
@photo = Photo.new(:swfupload_file => params[:Filedata])
@photo.save
render :partial => 'photo1'
end

nel mio controller dove verr visualizzato _photo1.html.erb, la cosa mi sta facendo diventare matto..sto usando un applicazione con swfupload e nel controller ho quello, il tutto viene visualizzato correttamente ma non riesco a capire dove gli venga detto di mostrare _photo1.html.erb. nel template...qualche dritta?

weppos
19-06-2009, 13:11
Originariamente inviato da mlipreri
non riesco a capire dove gli venga detto di mostrare _photo1.html.erb. nel template...qualche dritta?

Il comando, come hai visto tu stesso, nel controller non nella view.
Oppure non ho capito la domanda. :bh:

Se invece stai cercando di capire in che layout viene inserito il contenuto della action renderizzata, allora cerca dentro a /app/views/layouts.

mlipreri
19-06-2009, 15:29
Se invece stai cercando di capire in che layout viene inserito il contenuto della action renderizzata, allora cerca dentro a /app/views/layouts.
si st cercando di capire quello...in /app/views/layouts ho application.html.erb ma non penso che sia l il nodo della questione, all'interno oltre che al template del sito ho solo un
<%= yield :layout %>
ho notato che in /app/views/photos/index.html.erb ho un div
<div id="images"></div>
eliminandolo, una volta chiamato l action create del controller photos non viene renderizzato neinte.
Com' possibile che
render :partial => 'photo1'

sia collegato a que div?

weppos
19-06-2009, 15:56
Probabilmente hai da qualche parte una chiamata javascript o ajax che appende a quel tag il contenuto del parziale.
Fai una ricerca per la parola images (certo, un po' tanto generica) all'interno dell'applicazione e controlla tutti i metodi che la usano. In paticolare, attenzione agli helper

* link_to_remote
* qualsiasi cosa contenga remote
* replace_html
* insert_html

mlipreri
19-06-2009, 16:07
ok, grazie della dritta, ma com' possibile recuperare il contenuto del parziale?
Penso che sia all'interno di qualche file javascript visto che di rjs non ne uso, sto testando swfupload + paperclip e non riesco a capire sta cosa.
Cio da javascript come si recuperare il contenuto di quel parziale?

weppos
19-06-2009, 17:42
Il contenuto del parziale restituito come risposta.
Se chiami quell'action direttamente via browser lo vedrai a video. Se usi un helper ajax, ci sono dei metodi chiamati callback che ti permettono di riutilizzare quel contenuto ed appenderlo alla pagina corrente.

Loading