Rails - 获取当前 url,无需 GET 参数

问题描述 投票:0回答:4

request.url 返回给我: http://localhost:3000/page?foo=bar.

有没有一种方法可以调用来获取 http://localhost:3000/page ,或者我是否必须解析字符串以剥离 get 参数?

ruby-on-rails url
4个回答
58
投票
如果您不关心主机名,

request.path
应该返回您正在寻找的内容。否则你可以尝试:

url_for(:only_path => false, :overwrite_params=>nil)

18
投票

获取不带任何查询参数的请求URL。

def current_url_without_parameters
  request.base_url + request.path
end

12
投票

我使用以下内容:

request.original_url.split('?').first

它不会重新生成路径,因此会为您提供最终用户在浏览器中看到的准确 URL,减去查询参数。


0
投票

您可以使用

full_url_for
- 这会忽略 URL 中的任何查询参数。

例如。

example.com/foo?bar=1234
变成
example.com/foo

https://apidock.com/rails/ActionDispatch/Http/URL/full_url_for/class

© www.soinside.com 2019 - 2024. All rights reserved.