有没有办法在运行时在rails中编码URL?

时间:2015-03-17 06:05:13

标签: ruby-on-rails ruby url encode

在我的rails应用程序中,我有搜索功能。用户可以直接在URL中输入搜索字符串。如果用户输入搜索字符串'%',则URL将变为:

http://localhost:3000/search/% 

并产生错误请求错误。是否有任何选项可以在运行时对URL进行编码?

1 个答案:

答案 0 :(得分:1)

您提出的问题实际上并不能解决您所描述的问题。是的,Rails可以在运行时对URL进行编码,实际上它在运行时在正常操作中对许多URL进行编码。

但是,这对您没有帮助,基本上发生的事情是,当您的用户创建包含%的网址时,他们实际上会创建无效的网址 - 不仅适用于Rails,还适用于任何Web服务器或Web应用程序服务器或框架。

如果你仔细查看在浏览器中返回的错误,它甚至不是来自Rails,它来自WEBrick(或者你正在使用的任何httpd),与将记录到您的日志中的错误,它不是路由或其他地方的正常Rails错误。

所有这一切的结果是不,你无法在Rails中处理这个问题,因为在很多情况下它甚至无法通过Rails,而且它只是一个完全无效的URL。