सिनात्रा मार्गों के साथ आवश्यक और वैकल्पिक पैरामीटर, मार्ग के उसी हिस्से में एक आवश्यक नाम पैरामीटर और वैकल्पिक नाम पैरामीटर दोनों कैसे हो सकते हैं।सिनात्रा मार्ग
वैकल्पिक मार्ग पैरामीटर यहाँ ठीक
get '/widgets.?:format?'
काम करता है लेकिन, एक आवश्यक नामित पैरामीटर गठबंधन करने के लिए प्रयास करते हैं, और चीजों को तोड़ने।
get '/widgets/:id.?:format?'
/widgets/abc.json के लिए अनुरोध आईडी ab पैरामीटर के रूप में पूरे abc.json को पास करते हैं।
सिनात्रा संकलित regex है: "।"
/^\/widgets\/([^\/?#]+)(?:\.|%2E)?([^\/?#]+)?$/
ऐसा इसलिए है क्योंकि 'आईडी' से मेल खाने के लिए regexp लालची है, लेकिन बाकी को '?' जोड़कर उन्हें अप्रासंगिक बना दिया जाता है। कृपया [एक मुद्दा] खोलें (https://github.com/sinatra/sinatra/issues/new), मैं इसे ठीक करने में सक्षम हो सकता हूं। –