2013-08-26 3 views
5

यहाँ मेरी मार्गों फ़ाइलरेल केवल मेरे कुछ मार्गों का नाम क्यों देते हैं?

Dumb::Application.routes.draw do 

    # an auto-named route 
    get '/a/b',   to: 'a#b' 

    # apparently not auto-named??? 
    get '/a/z/:something', to: 'a#z' 

end 

यहाँ rake routes

a_b GET /a/b(.:format)   a#b 
    GET /a/z/:something(.:format) a#z 

वाह कि बेकार के उत्पादन में है! कम से कम स्थिरता के लिए। मैं

get '/a/z/:something', to: 'a#z', as: "a_z" 

rake routes को a#z मार्ग बदलते हैं तो प्रदर्शित करेगा

a_b GET /a/b(.:format)   a#b 
a_z GET /a/z/:something(.:format) a#z 

ठीक है यह अच्छी बात है, लेकिन मार्ग के नाम पर इस तरह से परेशान है हो रही है।

क्या यह एकमात्र समाधान है?

+0

मैं गलत हो सकता हूं, लेकिन मुझे लगता है कि रूटिंग तालिका केवल नामों को स्वचालित रूप से असाइन करती है जब मार्ग काम करने के लिए पर्याप्त सरल होता है। पैरामीटर जोड़ना इसे भ्रमित कर सकता है। – tadman

उत्तर

2

मेरा अनुमान है कि रेल आपके मार्ग पर एक नाम असाइन नहीं कर सकते क्योंकि यह समझ में नहीं आता है। आईडी :id और b आईडी :id के साथ एक और मॉडल उदाहरण के साथ एक और नियंत्रक के साथ एक मॉडल उदाहरण के साथ एक नियंत्रक से

/a/:id/b/:id # instead of /a/b/:id which Rails does not understand. 

रेल नक्शे a: आमतौर पर, आप इस तरह के रूप में अपने मार्ग लिखने के लिए चाहते हैं।

/a/b/:id रेल सम्मेलन के संदर्भ में कुछ भी संदर्भित नहीं करता है।

GET /a/ba_b नामित किया गया था, रेल अनुमान लगाया गया था, लेकिन यह GET /a/z/:something पर काम नहीं कर सकता है। क्या हो सकता है? a_z_something?

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