Rails: как получить текущий хост или создать с ним URL?
Мне нужно использовать хост для создания URL-адреса с другим портом.
Например, если хост является example.com, мне нужно создать URL-адрес, например http://example.com:8080/
Мне нужно, чтобы он был портативным, поэтому, когда я нахожусь в своей локальной среде, он показывает http://localhost:8080/.
Любые идеи?
Ответы
Ответ 1
Я часто использую before_filter
в ApplicationController
для установки переменной экземпляра с именем хоста, примерно так:
@hostname = request.host || "www.mydomain.com"
Вы также можете использовать request.port
, чтобы получить номер порта, к которому пришел запрос (взятый из заголовков HTTP).
Ответ 2
В основном вам нужно создать URL-адрес на основе текущего URL-адреса и другого номера порта.
это можно сделать как -
request.url(:port => 20)
На консоли rails
app.root_url(:port => 20)
=> "http://www.example.com:20/"
Чтобы извлечь хост из URL-адреса, используйте
request.host