request.url返回给我这个:http://localhost:3000/page?foo=bar.
有没有方法可以调用来获取http://localhost:3000/page,还是说我必须解析字符串来剥离get参数?
request.url返回给我这个:http://localhost:3000/page?foo=bar.
有没有方法可以调用来获取http://localhost:3000/page,还是说我必须解析字符串来剥离get参数?
如果您不关心主机名,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,减去查询参数。
request.url.split('?').first
这个更简洁的方法也适用于我。 - Francorequest.url
已经被弃用了,但我不确定。 - thekingoftruthrequest.referrer
一起工作。 - steelfull_url_for
函数,它会从URL中省略任何查询参数。http://example.com/foo?bar=1234
,它会返回http://example.com/foo
。
https://apidock.com/rails/ActionDispatch/Http/URL/full_url_for/class
/controller/action?param=1?param=2?param=3
,但是 request.path 对我非常有效。 - Justus Romijn