2015-02-07 46 views
1

似乎即使已正確轉義了url或路徑參數之一,但仍存在斜槓字符時,Rails無法找到路由...如果url具有%2f個字符,則路徑不匹配

的情況是這樣的:

我有這個路由:

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") 

軌正確生成此網址:

http://localhost:3000/request_work_sheet/CP%2F121/master/WS1 

的網址似乎是正確的逃脫,但只要我導航路線沒有找到鏈接:

No route matches [GET] "/request_work_sheet/CP/121/master/WS1" 

如果該鏈接沒有斜槓字符路線被發現...

任何想法? (許多在此先感謝...)

回答

0

它認爲item_code=CPdocument_type=121workstation=master,那麼你有一個額外的/WS,不映射到任何路線。如果你能工作,你不能擁有任何參數值。

+0

我有第三方應用程序調用我的Rails應用程序,並進入數據庫項目代碼具有斜槓字符es。 XX/YYY,第三方應用程序正確地將斜槓轉義爲%2f,但無法找到路線......您所說的是我無法接受斜線轉義參數的路線? – giates 2015-02-07 07:35:01

+0

嗯,試試這個:'get'request_work_sheet /:item_code /:document_type /:workstation'=>'work_sheets#request_work_sheet',constraints:{item_code:/ \ w {1,2} \/\ d {1,3} /}' – Hesham 2015-02-07 16:12:34

相關問題