Rails如何请求除url参数之外的url?

Posted

技术标签:

【中文标题】Rails如何请求除url参数之外的url?【英文标题】:Rails how to request url except url params? 【发布时间】:2012-04-12 08:24:26 【问题描述】:

我正在创建这个链接标签:

<link rel="canonical" href="<%= request.url %>" />

问题在于它是带有参数的完整网址。

如何在没有任何参数的情况下请求 url?

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

request 是一个 ActionDispatch::Request 并且是 Rack::Request 的子类。 Rack::Request 有一个您可能感兴趣的 path 方法:

<%= request.path %>

如果您的request.urlhttp://example.com/where/is?pancakes=house%3F,那么request.path 应该是/where/is

【讨论】:

我认为 James 的解决方案是我的最佳选择,因为我需要完整的 url,而不仅仅是路径。 @Victor:你能更明确一点“不起作用”是什么意思吗? 当然。 request.path 给了我? 之后的路径和参数。 request.url.split('?').first 按预期工作。 @Victor: request.path 在 3.2 中不包括我的查询字符串,所以我不确定你的代码是怎么回事。你用的是什么路线? 好吧,我已经在我的代码库中解决了这个问题。我现在正在做其他事情。感谢 cmets/answers。

以上是关于Rails如何请求除url参数之外的url?的主要内容,如果未能解决你的问题,请参考以下文章

如何限制 NGINX basic_auth 对除一个 URL 之外的每个 URL 的访问?

如何在 ASP.Net 中将除单个 URL 之外的所有 URL 重定向到 https?

如何删除除第一个之外的所有 URL 哈希?

Rails 5.0.0.beta1 - 从未过滤的请求参数生成 URL 是不安全的

如何使用 .htaccess 在除一个目录 /images 之外的所有 URL 上强制使用 HTTPS?

重定向除部分 url 301 之外的所有 url