2011-01-06 33 views
5

Dalla visualizzazione elenco della mia app, posso visualizzare un elenco di record o eseguire il drill-down e modificare/aggiornare un record. Dopo l'aggiornamento, desidero tornare direttamente alla visualizzazione elenco, ignorando un paio di pagine intermedie, ma non voglio semplicemente fare il numero link_to(:action => list) - è prevista la paginazione. Voglio tornare alla pagina esatta di "lista" da cui provengo. Qual è il modo migliore? Passa un argomento nascosto da qualche parte con il numero di pagina? C'è un modo elegante per realizzare questo?Come tornare indietro di 2 livelli?

risposta

7

Ho appena intenzione di lanciare questo qui con la dichiarazione di non responsabilità che ci possono essere considerazioni di sicurezza o gemme esistenti.

Nell'azione di modifica, è possibile memorizzare la pagina precedente in una sessione. Quindi, nella tua azione di aggiornamento, reindirizza ad essa.

2

In alternativa all'utilizzo della sessione, è possibile trasportare il referente tramite le azioni utilizzando un campo modulo nascosto.

class MyController < ApplicationController 

    def edit 
    @prev_url = request.referer 
    end 

    def update 
    redirect_to params[:prev_url] 
    end 

end 

Modulo utilizzando hidden_field:

f.hidden_field :prev_url, :value => @prev_url 

Se non si desidera portare con sé l'intero URL referer si potrebbe anche fare lo stesso con il parametro della pagina, invece, e aggiungere il parametro per l'URL nella update azione. Mi aspetto anche che gli helper di Rails di Rails accettino i parametri.

Problemi correlati