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