在Rails 4中,是否可能确定是否存在空查询字符串?

3
在Rails应用程序/HTML5应用程序中,我需要从以下位置重定向:
http://www.example.com/?

转换为规范格式:

http://www.example.com/

(上下文是一个HTML5 Web应用程序,某些浏览器不将这两个URL视为等效的,因此将请求并缓存相同页面的两个副本。)
我找不到任何获取原始请求字符串的方法 - Request#original_fullpath()和Request#original_url()已经删除了空查询字符串。

你尝试过在控制器中使用类似以下的简单代码吗: if request.path != root_path redirect_to root_path, status: :moved_permanently end 这个想法来自于:http://railscasts.com/episodes/314-pretty-urls-with-friendlyid?view=asciicast - coding addicted
在那个时候,request.path已经被剥离了任何查询字符串。 - MZB
所以你想在路由层面上进行重定向? - coding addicted
在任何级别上,即使在路由级别上,request.original_fullpath都没有任何指示表明URL中包含了空查询部分。 - MZB
1个回答

4
你可以从request.env["REQUEST_URI"]中获取原始URL。这是在控制器级别运行的,只是Rails委托给底层的Rack::Request的一个代理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接