Как получить текущий абсолютный URL в Ruby on Rails? - PullRequest
1006 голосов
/ 30 января 2010

Как получить текущий абсолютный URL в моем представлении Ruby on Rails?

request.request_uri возвращает только относительный URL.

Ответы [ 33 ]

4 голосов
/ 11 марта 2014

вы можете использовать любой для рельсов 3.2:

request.original_url
or
request.env["HTTP_REFERER"]
or
request.env['REQUEST_URI']

Я думаю, что это будет работать везде, где

"#{request.protocol}#{request.host}:#{request.port}#{request.fullpath}"
4 голосов
/ 26 мая 2016

Для Rails 3.2 или Rails 4 Просто получите таким образом "request.original_url" Ссылка: Оригинальный метод URL

Для рельсов 3 Так как request.url устарел. Мы можем получить абсолютный путь путем объединения

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

Для рельсов 2

request.url
3 голосов
/ 02 декабря 2015

Вы можете использовать

request.original_url 

или

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

чтобы получить текущий URL.

3 голосов
/ 09 апреля 2015

Получить URL запроса без каких-либо параметров запроса.

def current_url_without_parameters
  request.base_url + request.path
end
3 голосов
/ 10 августа 2013

Для рельсов 3:

request.fullpath

3 голосов
/ 02 января 2013

Если вы хотите быть конкретным, то есть знаете, какой путь вам нужен:

link_to current_path(@resource, :only_path => false), current_path(@resource)
2 голосов
/ 03 марта 2014
request.env["REQUEST_URI"]

работает в рельсах 2.3.4 проверено и не знает о других версиях.

1 голос
/ 04 марта 2016

Вы можете установить переменную на URI.parse(current_url), я пока не вижу здесь этого предложения, и оно работает для меня.

1 голос
/ 18 августа 2015

Вы можете использовать:

request.full_path

или

request.url

Надеюсь, это решит вашу проблему.

Приветствия

0 голосов
/ 17 апреля 2015

Рельсы 4

Контроллер:

def absolute_url
  request.base_url + request.original_fullpath
end

Action Mailer Заметные изменения в 4.2 выпуске :

link_to и url_for генерируют абсолютные URL по умолчанию в шаблонах, больше не нужно передавать only_path: false. (Commit)

Вид:

Если вы используете суффикс _url, сгенерированный URL является абсолютным. Используйте _path, чтобы получить относительный URL.

<%= link_to "Home", root_url %>

Для получения более подробной информации, перейдите по ссылке:

http://blog.grepruby.com/2015/04/absolute-url-full-url-in-rails-4.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...