2015-03-01 8 views
7

कल्पना की सुविधा देता है, मैं एक मार्ग निम्नलिखित की तरह परिभाषित किया गया है:रेल में वर्तमान यूआरएल मार्ग पैटर्न कैसे प्राप्त करें?

constraints MyRouteConstraint.new do 
    get ':param/:param1/:param2', to: 'controller#action' 
end 

मैं पैटर्न कैसे प्राप्त कर सकते हैं ': param /: param1 /: param2' मेरे नियंत्रक में? मैं जानता हूँ कि Rails.application.routes.recognize_path है "/ परम/param1/param2" लेकिन यह एक त्रुटि 'नहीं मार्ग से मेल खाता है'

अद्यतन को जन्म देती है:

Rails.application.routes.router.recognize(request) do |route, matches, parameters| 
    return route.path.spec.to_s if route.path.required_names.all? { |p| request.params.keys.include? p } 
end.flatten.compact.first 

उत्तर

0

नहीं भी यकीन है कि अगर यह क्या है आप खोज रहे हैं, इसका मतलब आपके विचारों में किया जाना है।

आप request.fullpath

अनुरोध किया आखिरी URL का पैरामीटर सहित स्ट्रिंग पूरा पथ रिटर्न कोशिश कर सकते हैं।

# get "/articles" 
request.fullpath # => "/articles" 

# get "/articles?page=2" 
request.fullpath # => "/articles?page=2" 

यहाँ डॉक्स देखें: ': param /: param1 /: param2' वास्तव में

http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-original_url

+0

नहीं, मैं प्राप्त करना चाहते हैं। अपडेट देखें –

संबंधित मुद्दे