2010-06-23 7 views
11

मैं निम्नलिखित मार्गों मेरी routes.rb फ़ाइल में स्थापित:रेल संग्रह मार्ग पर ध्यान नहीं देता और इस शो कार्रवाई के साथ चला जाता है बजाय

resources :people do 
    collection do 
    get :search 
    end 
end 

जब मैं यूआरएल पर एक कार्रवाई मिलता है: http://localhost:3000/people/search.json?term=stepeb, सर्वर रिपोर्ट कि यह सही कार्य पैरामीटर के साथ शो एक्शन के साथ प्रतिक्रिया दे रहा है, लेकिन एक आईडी पैरामीटर भी है, जो "खोज" पर सेट है।

समस्या, के रूप में मैं इसे देख, दो यूआरएल शो यूआरएल होंगे:

/people/:id 

और मेरा मानना ​​है कि रूटर उस मार्ग से मेल खाते है इससे पहले कि यह करने के लिए/लोग/खोज

हो जाता है

यदि ऐसा है, संग्रह आधारित मार्ग कभी भी कैसे काम करेंगे? क्या वे सभी शो एक्शन द्वारा पकड़े नहीं जाएंगे?

search_people GET  /people/search(.:format)               {:action=>"search", :controller=>"people"} 
            GET  /people(.:format)                {:action=>"index", :controller=>"people"} 
           people POST  /people(.:format)                {:action=>"create", :controller=>"people"} 
          new_person GET  /people/new(.:format)               {:action=>"new", :controller=>"people"} 
            GET  /people/:id(.:format)               {:action=>"show", :controller=>"people"} 
            PUT  /people/:id(.:format)               {:action=>"update", :controller=>"people"} 
           person DELETE /people/:id(.:format)               {:action=>"destroy", :controller=>"people"} 
         edit_person GET  /people/:id/edit(.:format)              {:action=>"edit", :controller=>"people"} 
+2

यह सुनिश्चित नहीं है कि समस्या क्या है, लेकिन यह निश्चित रूप से काम करना चाहिए जैसा आप उम्मीद करते हैं। (मुझे आश्चर्य है कि .json प्रारूप समस्याएं पैदा कर रहा है।) क्या आप हमें 'रेक मार्ग' का आउटपुट दे सकते हैं? –

+0

मैंने जोड़ा .json जब मैंने देखा कि यह इच्छित तरीके से काम नहीं करता है। कोई फर्क नहीं पड़ता। – midas06

उत्तर

21

दोह, इसे भूल जाओ। बाहर निकलता है मेरे पास डुप्लिकेट संसाधन थे: मार्ग फ़ाइल के शीर्ष पर लोग लाइन। रेल पहले मार रहे थे। मुझे लगता है कि वहां वास्तव में डुप्लिकेट रूट परिभाषा के लिए एक चेक होना चाहिए।

+0

मेरा दिन बचाया। मार्गों में। 1000 से अधिक लाइनों के साथ आरआरबी :) –

+0

धन्यवाद मिडास .. डुप्लिकेट संसाधन हटाए गए और इसके कामकाजी महान। मैं कल से संघर्ष कर रहा था। एक बार फिर धन्यवाद :) –

+0

बहुत बढ़िया, धन्यवाद !!! – astgtciv

0

रेल का कौन-सा संस्करण चल रहे हैं:

रेक मार्गों की प्रासंगिकता का इस प्रकार है? आपके द्वारा यहां प्रदान किए गए कोड के साथ एक परीक्षण एप्लिकेशन बनाने का प्रयास करें और देखें कि यह काम करता है या नहीं। शायद कुछ और ऐसा संघर्ष हो रहा है जिसका आपने उल्लेख नहीं किया है।

रेल पर अपने कोड 3.0.0beta4 उत्पादित वांछित परिणाम का उपयोग करते हुए: मेरे मार्गों फ़ाइल

Started GET "/people/search.json?term=boo" for 192.168.1.2 at 2010-06-23 03:39:26 -0400 
    Processing by PeopleController#search as JSON 
    Parameters: {"term"=>"boo"} 
Completed in 49ms 

यहाँ है:

resources :people do 
    collection do 
     get :search 
    end 
    end 

मैं एक खोज विधि परिभाषित के साथ एक people_controller.rb है।

+0

मैं अब किनारे रेल पर चल रहा हूं, लेकिन मैंने बीटा 4 पर भी कोशिश की ... – midas06

0

मुझे भी इसी तरह की समस्या थी। अपने उदाहरण के अनुसार मेरी routes.rb इस

resources :people 

... 

resources :people do 
    collection do 
     get :search 
    end 
    end 

करने के लिए इसे बदल दिया है की तरह लग रहा था:

resources :people do 
    collection do 
     get :search 
    end 
    end 

... 

resources :people 

और मैं संग्रह का उपयोग कर सकते हैं ... btw, इस मार्गों को जोड़ने का उचित तरीका है? यानी नियंत्रक को कोई कार्रवाई जोड़ने और "पुराने" संसाधनों को छोड़कर एक नया मार्ग जोड़ने के लिए यह अच्छी शैली है: इस तरह के लोग हैं?

+0

मुझे पता है कि यह पुराना है, लेकिन आप अनिवार्य रूप से दूसरी बार डुप्लीकेट जोड़ रहे हैं। – bradlis7

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