2009-02-09 13 views
8

sinatra के साथ बजाना, मैं थोड़ी सी समस्या पर फंस गया हूं: जब मैं स्लेश के साथ पैरा का उपयोग करता हूं, तो यह राउटर इंजन को भ्रमित करता है। तो क्या इस तरह के परम को एन्कोड किए बिना इसे संभालने का एक अच्छा तरीका है?सिनात्रा के साथ स्लेश के साथ पैरा का उपयोग कैसे करें?

कोड

get 'add/:url' do 
    #.... 
end 

तरह लग रहा है और मैं/जोड़/http://sctackoverflow.com/ काम कर

उत्तर

10

आप सूचक पैरामीटर का उपयोग करने का प्रयास किया था की तरह कुछ पाने के लिए करना चाहते हैं?

कुछ की तरह:

get '/add/*' do 
    protocol = params[:splat].first 
    address = params[:splat][1..-1].join('/') 

    url = protocol + "//" + address 
end 
2

धन्यवाद, मैं सूचक पैरामीटर के बारे में नहीं सुना है और यह इस मामले के लिए पूरी तरह से काम करता है। दरअसल, मैं प्रलेखन देखा है और मैं कब्जा मापदंडों और रेगुलर एक्सप्रेशन का उपयोग भी कम पाया:

get %r{/add/(.+)} do 
    url = params[:captures] 
end 
संबंधित मुद्दे