路由中定义 match 'articles/:value/search' => 'articles#index' 简单起见,在页面中拼一个 url <%= link_to 'Search', "/articles/%/search" %>
如果:value 匹配了%或者.,程序就会报错 尝试了 CGI.escape 还是不行,有什么方法可以把 % 转换成 %25
URI.escape('%') 或者使用 jQuery 的 $.param()
URI.escape('%')
$.param()
#1 楼 @dddd1919 ok
这个问题我也遇到。。但我的需求是后台接受到含有%的请求时,也要正确处理。比如直接从地址栏输入 url 访问也要确保后台正确处理。这个可有可行的办法?
直接用 query string 就可以了,为什么要用%, /articles?q=foo就行了。
/articles?q=foo
#4 楼 @billy 我只是把业务上得问题简化了一下,大概意思就是不能直接接参数
或許可以參考一下這樣的作法 http://gogojimmy.net/2014/08/02/handle-slash-in-routing-in-rails/