59 votes

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 d'avant ?

Parce que je reçois une demande AJAX et j'ai besoin de l'URL de la page sur laquelle ils se trouvent actuellement (ou de l'URL avant l'AJAX).

102voto

gayavat Points 3169

Essayez d'utiliser HTTP_REFERER .

Dans les rails : request.referrer ou request.headers["HTTP_REFERER"]

20voto

panicoper Points 874

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.

7voto

troelskn Points 51966

Dans une application Web, il n'existe pas d'URL précédente. 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 demande.

4voto

Matt Points 121

Je viens de tomber sur cette question et elle était liée à quelque chose de simple que je faisais actuellement.

Une solution simple que j'ai déjà utilisée lors de l'utilisation d'applications de style assistant ajax consiste à stocker deux variables de session qui contiennent la demande précédente et actuelle (avec tous les paramètres). Je viens d'ajouter ces deux lignes à mon contrôleur d'application

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

2voto

apneadiving Points 64660

http://railscasts.com/episodes/246-ajax-history-state -> idéal pour ajax

http://ethilien.net/archives/better-redirects-in-rails/ -> Vous pouvez mettre en session autant d'url précédentes que vous le souhaitez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X