Domanda

Ho un'app Rails che ha preso un po 'di trazione, ma ho un forte mal di testa da affrontare. È una sorta di applicazione di gestione patrimoniale: gli utenti caricano le loro foto, .pdf, video, ecc. E il sistema consente loro di gestire la modalità di presentazione di tale risorsa.

Ho iniziato con una vista delle rotaie abbastanza standard - proprio quello che viene generato dalle rotaie - per index.html.erb. Ho un parziale che rende una miniatura per ciascuna delle risorse e qualcosa del genere:

<div id="preview">  </div>

Quello che voglio è che la miniatura sia cliccabile (abbastanza facile) ma quando l'utente preme quel pulsante, il contenuto del div verrà riempito, beh, essenzialmente il edit.html.erb, ma suppongo deve essere fatto come parziale. L'ho già gestito con javascript diretto.

Ho accesso alla versione pre-pubblicazione del nuovo libro "Agile Development on Rails", che chiunque può ottenere attraverso l'editore, ma il capitolo su AJAX è molto minimale e presuppone più esperienza con queste cose di quante ne abbia io , essendo questa la mia prima incursione in javascript e rails.

AGGIORNAMENTO: in risposta a "qual è la domanda" 'risposta', anche se ho pensato che fosse abbastanza chiaro:

Cosa devo inserire nella miniatura dell'anteprima per fare in modo che un clic su di essa carichi il modulo di modifica nel div?

È stato utile?

Soluzione

devi usare link_to_remote:

<%=    link_to_remote image_tag('whatever.jpg'), 
       {:controller => 'something', :action => 'replace_thumbnail', :id => @thumbnail.id}, 
       :update => 'preview' %>

e nel controller dovresti avere questa azione:

def replace_thumbnail
  image = Image.find(params[:id])
  render :partial => 'edit', :object => image, :layout => false
end

assicurati che il tuo parziale sia chiamato '_edit.html.erb'

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top