54 votes

Dans Rails, comment obtenir l'url courante (mais pas les chemins)

Si je suis dans une URL telle que

http://domain.com/mysite/bla

Comment puis-je demander uniquement l'URL sans chemin d'accès ? Par exemple

http://domain.com

2 votes

4 votes

Ce n'est pas un doublon, parce que l'auteur veut retourner seulement le protocole avec l'hôte mais pas l'url complète.

0 votes

Vous devriez accepter la réponse de @fl00r, c'est la meilleure.

116voto

fl00r Points 41855

Vous pouvez utiliser ce

<%= request.protocol + request.host_with_port %>
#=> https://domain.com:3000
<%= request.protocol + request.host %>
#=> https://domain.com

À partir de Rails 3.2, vous pouvez également utiliser

<%= request.base_url %>
#=> https://domain.com:3000

0 votes

Juste pour compléter Si vous avez besoin de plus d'informations, vérifiez api.rubyonrails.org/classes/ActionDispatch/Http/URL.html

5voto

Pravin Points 2741

request.host devrait faire l'affaire, ou :

request.port.blank? ? request.host : "#{request.host}: #{request.port}"

si vous devez inclure le port aussi.

0 votes

Qui n'inclut pas le port s'il est spécifié

0 votes

request.port.blank? ? request.host : "#{request.host}: #{request.port}"

4voto

Ashish Points 3221

Essayez ceci

<%=request.scheme + '://' + request.host_with_port%>

Si vous voulez voir toutes les méthodes disponibles sur l'objet de la demande alors

<%=request.methods.sort%>

2voto

Kulbir Saini Points 2600

Pour le protocole, le domaine et le port

<%= "#{request.protocol + request.host}:#{request.port.to_s}" %>

0voto

Zionmaster Points 1

Si votre port peut être autre que 80, il doit être inclus.

"#{request.protocol}#{request.host_with_port}"

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