Ruby on Rails: Comment obtenez-vous l’URL précédente?

Comment obtenir l’URL précédente dans Rails? Pas l’URL à partir de laquelle vous avez reçu une demande, mais celle avant laquelle?

Parce que je reçois une requête AJAX, et j’ai besoin de l’URL de la page sur laquelle ils se trouvent (ou de l’URL avant AJAX).

Essayez d’utiliser HTTP_REFERER .

Dans Rails: request.referrer ou request.headers["HTTP_REFERER"]

Utilisation

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

voici plus de détails.

Dans une application Web, une URL précédente n’existe pas. Le protocole http est sans état, donc chaque requête est indépendante l’une de l’autre.

Vous pourriez avoir le code Javascript, qui renvoie une demande, envoyer l’URL actuelle avec la requête.

Je viens de tomber sur cette question et cela concernait quelque chose de simple que je faisais tout à l’heure.

Une solution simple que j’ai employée auparavant lors de l’utilisation d’applications de style Assistant wax consiste à stocker deux variables de session contenant la requête précédente et la requête en cours (avec tous les parameters). Je viens d’append ces deux lignes à mon contrôleur d’application

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

http://railscasts.com/episodes/246-ajax-history-state -> super pour ajax

http://ethilien.net/archives/better-redirects-in-rails/ -> Vous pouvez mettre en session autant d’URL que vous le souhaitez.