5
使用Sinatra路由時,如何在路由的相同部分同時存在所需的命名參數和可選的命名參數。Sinatra路由的必需參數和可選參數
可選路徑參數工作正常這裏
get '/widgets.?:format?'
但是,嘗試將需要命名放慢參數結合起來,事情打破。
get '/widgets/:id.?:format?'
請求/widgets/abc.json傳遞整個abc.json作爲id參數。
的西納特拉編譯正則表達式是:「」
/^\/widgets\/([^\/?#]+)(?:\.|%2E)?([^\/?#]+)?$/
這是因爲用於匹配':id'的正則表達式很貪婪,但是向其餘的添加'?'使得它們不合格。請打開[問題](https://github.com/sinatra/sinatra/issues/new),我可能會解決這個問題。 – 2012-03-21 14:48:27