request.url me renvoie ceci: http: // localhost: 3000/page? foo = bar .
Existe-t-il une méthode que je peux appeler pour obtenir http: // localhost: 3000/page , ou dois-je analyser la chaîne pour supprimer les paramètres get?
request.path
devrait renvoyer ce que vous recherchez si vous n'êtes pas préoccupé par le nom d'hôte. Sinon, vous pourriez essayer:
url_for(:only_path => false, :overwrite_params=>nil)
Pour obtenir l'URL de la demande sans aucun paramètre de requête.
def current_url_without_parameters
request.base_url + request.path
end
J'utilise ce qui suit:
request.original_url.split('?').first
Il ne régénère pas le chemin d'accès et vous donne donc exactement l'URL que l'utilisateur final voit dans son navigateur, moins les paramètres de requête.