मैं अपने मार्गों के सम्मेलन का नामकरण करने में निरंतरता रखना चाहता हूं। किसी भी संसाधन के लिए डिफ़ॉल्ट param :id
है। हालांकि अगर कोई इसमें किसी अन्य संसाधन का घोंसला करता है, तो मूल संसाधन का सर्वो :parent_id
में बदल जाता है। मेरे मार्ग की तरह दिखता है:,नेस्टेड मार्गों में पैरामीटर ओवरराइडिंग
resources :users do
resources :projects do
resources :issues
end
end
उपयोगकर्ता मॉडल यह :id
तरह यूआरएल उत्पन्न होगा के लिए परियोजना यूआरएल के लिए :user_id/:id
हो जाएगा और मुद्दों के लिए यूआरएल :user_id/:project_id/:id
हो जाएगा। :user_user_id/:project_project_id/:issue_id
: मैं निम्नलिखित this
resources :users, param: :user_id do
resources :projects, param: :project_id do
resources :issues, param: :issue_id
end
end
ऐसा लगता है कि यूआरएल उत्पन्न डिफ़ॉल्ट परम ओवरलोड की कोशिश की। चूंकि मैं इसे ओवरराइड कर रहा हूं, मैं चाहता हूं कि मूल संसाधन का डिफ़ॉल्ट अनुलग्नक बंद हो। मैं चाहता हूं कि मेरे मार्ग :user_id/:project_id/:issue_id
जैसा दिखें और मैं चाहता हूं कि यह सभी मॉडलों के लिए सुसंगत रहे। यानी परियोजना को :user_id/:project_id
पर मैप किया जाना चाहिए।
क्षमा करें हैदर, लेकिन यह केवल पैरामीटर सूचियों के लिए एक कुंजी जोड़ता है: 'पैरामीटर: {"कुंजी" =>: project_id, "user_id" => "addie", "id" = > "new_project"} ' – sonalkr132
@ sonalkr132 आप'/clients /: customer_id/projects /: project_id/issues' को '/: user_user_id /: project_project_id /: issue_id' में कनवर्ट करना चाहते हैं ???? –
नहीं! मैं इसे दूसरे तरीके से चाहता हूं। यानी ': user_user_id /: project_project_id /: issue_id' से' user_id /: project_id /: issue_id'। परम ओवरराइडिंग पूर्व उत्पन्न करता है। – sonalkr132