Ответ 1
request.path
должен вернуть то, что вы ищете, если вас не интересует имя хоста. В противном случае вы можете попробовать:
url_for(:only_path => false, :overwrite_params=>nil)
request.url возвращает мне это: http://localhost:3000/page?foo=bar.
Есть ли способ, который я могу вызвать, чтобы получить http://localhost:3000/page, или мне нужно проанализировать строку, чтобы удалить параметры get?
request.path
должен вернуть то, что вы ищете, если вас не интересует имя хоста. В противном случае вы можете попробовать:
url_for(:only_path => false, :overwrite_params=>nil)
Я использую следующее:
request.original_url.split('?').first
Он не регенерирует путь и поэтому дает вам именно тот URL-адрес, который конечный пользователь видит в своем браузере, минус параметры запроса.
Получить URL-адрес запроса без каких-либо параметров запроса.
def current_url_without_parameters
request.base_url + request.path
end