2011-01-10 11 views

risposta

66

Prova a utilizzare HTTP_REFERER.

In Rails: request.referrer o request.headers["HTTP_REFERER"]

5

In un'applicazione Web non esiste un URL precedente. Il protocollo http è senza stato, quindi ogni richiesta è indipendente l'una dall'altra.

Si potrebbe avere il codice Javascript, che restituisce una richiesta, inviare l'url corrente con la richiesta.

+1

che è esattamente la risposta corretta e noi tutti dovrebbero rileggere l'articolo di Roy Fielding! – awenkhh

12

Usa

<%= url_for(:back) %> 
# if request.env["HTTP_REFERER"] is set to "http://www.example.com" 
# => http://www.example.com 

here is more details.

4

Proprio imbattuto in questa domanda e si riferiva a qualcosa di semplice che stavo facendo attualmente.

Una soluzione semplice che ho utilizzato prima quando si utilizzano le app di uno stile wizard ajax è quella di memorizzare due variabili di sessione che contengono la richiesta precedente e corrente (con tutti i parametri). Ho solo aggiungere queste due righe al mio controller applicazione

session[:previous_request_url] = session[:current_request_url] 
session[:current_request_url] = request.url