Подтвердить что ты не робот

Rails: как получить текущий хост или создать с ним URL?

Мне нужно использовать хост для создания URL-адреса с другим портом.

Например, если хост является example.com, мне нужно создать URL-адрес, например http://example.com:8080/

Мне нужно, чтобы он был портативным, поэтому, когда я нахожусь в своей локальной среде, он показывает http://localhost:8080/.

Любые идеи?

4b9b3361

Ответ 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