在我的rails应用程序中,我有搜索功能。用户可以直接在URL中输入搜索字符串。如果用户输入搜索字符串'%'
,则URL将变为:
http://localhost:3000/search/%
并产生错误请求错误。是否有任何选项可以在运行时对URL进行编码?
答案 0 :(得分:1)
您提出的问题实际上并不能解决您所描述的问题。是的,Rails可以在运行时对URL进行编码,实际上它在运行时在正常操作中对许多URL进行编码。
但是,这对您没有帮助,基本上发生的事情是,当您的用户创建包含%
的网址时,他们实际上会创建无效的网址 - 不仅适用于Rails,还适用于任何Web服务器或Web应用程序服务器或框架。
如果你仔细查看在浏览器中返回的错误,它甚至不是来自Rails,它来自WEBrick(或者你正在使用的任何httpd),与将记录到您的日志中的错误,它不是路由或其他地方的正常Rails错误。
所有这一切的结果是不,你无法在Rails中处理这个问题,因为在很多情况下它甚至无法通过Rails,而且它只是一个完全无效的URL。