似乎当其中一个url或path参数中存在斜杠字符时,即使它已被正确转义,Rails也无法找到路径......
情景如下:
我有这条路线:
get 'request_work_sheet/:item_code/:document_type/:workstation' => 'work_sheets#request_work_sheet'
我尝试创建此链接:
link_to "Document", request_work_sheet_path("CP/121", "master", "WS1")
rails正确生成此网址:
http://localhost:3000/request_work_sheet/CP%2F121/master/WS1
该网址似乎已被转义,但只要我浏览该链接,就找不到该路线:
No route matches [GET] "/request_work_sheet/CP/121/master/WS1"
如果链接没有斜线字符,则找到路线...
有什么想法吗? (非常感谢提前......)
答案 0 :(得分:0)
它认为item_code=CP
,document_type=121
,workstation=master
,那么你有一个额外的/WS
,它不会映射到任何路线。如果你这样做,就不能拥有任何param值。
答案 1 :(得分:0)
我遇到了这个问题,发现我必须在apache2.conf文件中设置“ AllowEncodedSlashes On”设置。在执行此操作之前,apache将阻止URL并返回404(未找到)。它从未到达我的铁轨路线。现在一切都按预期通过。