2010-08-16 18 views
10

Ci sono alcune opzioni per modificare un modello sul posto mentre si è nella pagina Mostra, cioè senza dover caricare un modulo nella pagina Modifica. Ad esempio, vedere http://www.ruby-toolbox.com/categories/rails_in_place_editing.html.modifica diretta in Rails 3

Qualcuno ha avuto esperienza con nessuna di queste opzioni (o altre) in Rails 3? Qualche suggerimento o consiglio?

Nel mio caso, ho un modulo abbastanza lungo composto da un numero variabile di elementi. Dal punto di vista dell'usabilità, ha senso modificare il testo in questi elementi nella stessa pagina, invece di richiedere un pulsante Modifica per ognuno che invia l'utente a una pagina di modifica per l'oggetto specifico.

risposta

1

Certo, ha senso per me. Lo faccio tutto il tempo.

Ad esempio, sto lavorando a un modello di modello annidato polimoropico complesso e ha solo due viste. Un indice e un parziale per aggiungere in modo dinamico più attributi ad esso.

Se si conosce AJAX, ciò può davvero aiutare l'interfaccia utente in quanto gli utenti non dovranno nemmeno fare clic su un pulsante di salvataggio.

Per realizzare un minimo di questo. Configura un index.html.erb con il tuo modulo al suo interno.

nel controller, è possibile specificare le vostre azioni in questo modo:

def update 
    @quick_fact = @organization.quick_facts.find(params[:id]) 
    if @quick_fact.update_attributes(params[:tab]) 
    flash[:notice] = 'Text Tab was successfully updated.' 
    redirect_to quick_facts_organization_path(@organization) 
    else 
    render :action => "index", :id => params[:id] 
end 
end 
13

Ottima domanda!

  • in_place_editing è da dhh, creatore di Rails. È gestito dal team principale di Rails. Quindi certamente dovrebbe essere esaminato.

  • Hobo è un quadro di grandi dimensioni che dispone di editing sul posto anteriore e centrale. È un pacchetto fluido ma potrebbe essere più di ciò che desideri o di cui hai bisogno.

Aggiornato per Rails 3 Ryan del Railscasts raccomanda l'Best in Place gemma. Vedi lo Railscast con codice di esempio e ulteriori informazioni.

+6

Si noti che 'in_place_editing' è basato su Scriptaculous. Rails 3.1 e versioni successive utilizza jQuery ora, quindi questa non è più una soluzione pronta all'uso. – Ben

+2

@ Ben - Ho aggiornato la risposta. –