J'ai besoin d'utiliser l'hôte pour créer une URL avec un port différent.
Par exemple, si l'hôte est example.com, je dois générer une URL comme http://example.com:8080/
J'ai besoin qu'il soit portable, donc quand je suis dans mon environnement local, il montre http: // localhost: 8080 / à la place.
Des idées?
J'utilise souvent un before_filter
in ApplicationController
pour définir une variable d'instance avec le nom d'hôte, quelque chose comme ceci:
@hostname = request.Host || "www.mydomain.com"
Vous pouvez aussi utiliser request.port
pour obtenir le numéro de port par lequel la demande est passée (extrait des en-têtes HTTP).
Fondamentalement, vous devez générer une URL basée sur l'URL actuelle et un autre numéro de port. cela peut être fait comme -
request.url(:port => 20)
Sur Rails console
app.root_url(:port => 20)
=> "http://www.example.com:20/"
Pour extraire l'hôte de l'utilisation de l'URL
request.Host