तो मेरे पास एक मार्ग है:
get "/:param1-:param2", param1: /some_constraint/, param2: /some_constraint/
कभी-कभी मुझे प्रारूप में यूआरएल मिल जाएगा /: param1 +: param2। इसके लिए खाते में, मैंने कोशिश की:
get "/:param1(-|+):param2", param1: /some_constraint/, param2: /some_constraint/
लेकिन समस्या यह है कि मुझे लगता है कि कोष्ठक बनाता हैयह वैकल्पिक है क्योंकि "रेल मार्ग कैसे काम करता है। मुझे लगता है कि मैं regex का उपयोग नहीं कर सकता जब तक एक चर यह निर्दिष्ट नहीं करता है। यदि मेरे पास एक चर है: प्रतीक (- | +) बाधा को असाइन किया गया है, तो यह काम करता है। लेकिन मैं नहीं चाहता कि प्रतीक एक चर हो क्योंकि मुझे पथ बनाने और अन्य चीजों को करने के लिए मुझे पैरामीटर के रूप में प्रतीक याद रखना होगा। क्या ऐसा करने का कोई बेहतर तरीका है?
उत्तर:
जवाब के लिए 2 № 1मार्ग याद रखें। आरबी फ़ाइल एक रूबी फ़ाइल है, तो आप पाश कर सकते हैं:
%w(+ -).each |symbol|
get "/:param1#{symbol}:param2", param1: /some_constraint/, param2: /some_constraint/
end
symbol
एक बेहतर नाम की कमी के लिए, लेकिन आप जो भी कर रहे हैं उसके संदर्भ में आप कुछ और पा सकते हैं।