रेल मार्गों में संग्रह मार्गों और सदस्य मार्गों के बीच अंतर क्या है?
उदाहरण के लिए,
resources :photos do
member do
get :preview
end
end
बनाम
resources :photos do
collection do
get :search
end
end
मुझे समझ नहीं आ रहा है।
रेल मार्गों में संग्रह मार्गों और सदस्य मार्गों के बीच अंतर क्या है?
उदाहरण के लिए,
resources :photos do
member do
get :preview
end
end
बनाम
resources :photos do
collection do
get :search
end
end
मुझे समझ नहीं आ रहा है।
जवाबों:
एक सदस्य मार्ग को एक आईडी की आवश्यकता होगी, क्योंकि यह एक सदस्य पर कार्य करता है । एक संग्रह मार्ग इसलिए नहीं है क्योंकि यह वस्तुओं के संग्रह पर कार्य करता है। पूर्वावलोकन सदस्य मार्ग का एक उदाहरण है, क्योंकि यह एक वस्तु पर (और प्रदर्शित) करता है। खोज एक संग्रह मार्ग का एक उदाहरण है, क्योंकि यह वस्तुओं के संग्रह पर (और प्रदर्शित) कार्य करता है।
URL Helper Description
----------------------------------------------------------------------------------------------------------------------------------
member /photos/1/preview preview_photo_path(photo) Acts on a specific resource so required id (preview specific photo)
collection /photos/search search_photos_path Acts on collection of resources(display all photos)
search_photos_path
इसके बजाय का उपयोग करना चाहिए search_photos_url
ताकि लोग नहीं सोचेंगे _path
और _url
दोनों के बीच एक अंतर है।
थियो का जवाब सही है। दस्तावेज़ीकरण के लिए, मैं यह भी ध्यान देना चाहूंगा कि दोनों अलग-अलग पथ सहायक उत्पन्न करेंगे।
member {get 'preview'}
उत्पन्न करेगा:
preview_photo_path(@photo) # /photos/1/preview
collection {get 'search'}
उत्पन्न करेगा:
search_photos_path # /photos/search
नोट की बहुलता!
1) : संग्रह - संग्रह पर काम करने वाले अन्य कार्यों के लिए नामांकित मार्ग जोड़ें। एक हैश लेता है #{action} => #{method}
, जहाँ विधि है :get/:post/:put/:delete
, किसी भी पिछले की एक सरणी, या: यदि कोई विधि नहीं है। ये मार्ग एक URL जैसे / users / customers_list , ग्राहकों के मार्ग के साथ ___ers_url के लिए मैप करते हैं ।
map.resources: उपयोगकर्ता: संग्रह => {: customers_list =>: get}
2) :member
- के रूप में ही है :collection
, लेकिन एक विशिष्ट सदस्य पर काम करने वाले कार्यों के लिए।
map.resources: उपयोगकर्ता: सदस्य => {: निष्क्रिय =>: पोस्ट}
यह माना जाता है /users/1;inactive=> [:action => 'inactive', :id => 1]