2011-01-14 16 views
61

बेवकूफ सवाल है, लेकिन मुझे कुछ हद तक भ्रम है कि वास्तव में, "संसाधन" रेल में है। शब्द हर जगह प्रयोग किया जाता है लेकिन मुझे एक अजीब लग रहा है कि इसका उपयोग शायद कम हो रहा है। यह मॉडल, नियंत्रक और, वास्तव में, routes.rb में संदर्भित है।रेल में "संसाधन" क्या है?

क्या यह विशिष्ट मार्ग है? उदाहरण के लिए, map.resources 7 रीस्टफुल "संसाधन" मानचित्रित करता है। तो एक संसाधन का उदाहरण एक विशेष वर्ग के नियंत्रक की index कार्रवाई करने का आह्वान होगा?!

क्या यह पूरे पृष्ठ/वस्तु को पुनर्प्राप्त करने का संदर्भ है? या शायद, अधिक संकुचित, एक डेटाबेस तालिका? या पंक्ति को पुनः प्राप्त किया जा रहा है?

क्या यह कुछ और है?

वैसे भी, उम्मीद है कि किसी ने मुझे सीधे सेट कर सकते हैं ...

उत्तर

80

कोई भी वस्तु जिसे आप यूआरआई के माध्यम से एक्सेस करने में सक्षम होना चाहते हैं और CRUD (या कुछ सबसेट) ऑपरेशन को संसाधन के रूप में सोचा जा सकता है। रेल की समझ में, यह आमतौर पर एक डेटाबेस तालिका है जो एक मॉडल द्वारा दर्शाया जाता है, और एक नियंत्रक के माध्यम से कार्य किया जाता है।

उदाहरण के लिए, आपके पास User संसाधन हो सकता है (आपके डीबी में users तालिका के साथ)। यह एक User मॉडल का प्रतिनिधित्व करती है, उचित उपयोग करके map.resources :users साथ users_controller को मैप किया है (जो तब /users (उपयोगकर्ता संसाधनों का एक संग्रह) और /users/1 (एक विशिष्ट उपयोगकर्ता संसाधन) की तरह मार्गों उत्पन्न करता है।

आप उन संसाधनों पर कार्रवाई । HTTP विधि जब उन संसाधनों को कॉल कर रहा POST संसाधन संग्रह (/users) करने के लिए एक नया रिकार्ड बनाता है; GET एक (/users) संसाधनों की सूची या एक विशिष्ट उपयोगकर्ता (/users/1) को पुन: प्राप्त PUT एक विशिष्ट उपयोगकर्ता (/users/1/) अद्यतन करता है, और DELETE। उस उपयोगकर्ता को नष्ट कर देता है। यूआरएल समान हैं, लेकिन परिणाम (और नियंत्रक कार्रवाई) HTTP क्रिया के आधार पर भिन्न हो सकता है। विचार, हालांकि /users/1 का अर्थ यह है कि "कार्रवाई के बावजूद मैं उस उपयोगकर्ता के साथ बातचीत कर रहा हूं जिसमें आईडी # 1 है"।

+0

यदि मेरे पास ऐसा संसाधन है जो डेटाबेस मॉडल का उपयोग नहीं कर रहा है (यह दृढ़ता के लिए एक अलग सेवा के एपीआई का उपयोग कर रहा है) क्या यह अभी भी रेल "संसाधन" का उपयोग करने के लिए समझ में आता है शॉर्टकट या क्या मैं मैन्युअल रूप से मार्गों को परिभाषित करने से बेहतर हूं? – Jonah

7

यहाँ एक good article पर चर्चा कैसे सबसे डेवलपर्स लगता है कि "संसाधन", डेटाबेस तालिका, तर्क, मुझे लगता है के साथ पर्याय है संसाधन है कि मानचित्रण किया जा रहा है उस डेटाबेस तालिका में नियंत्रक मैप कर रहा है (या, सक्रिय संसाधन के साथ, किसी अन्य REST url पर)।

असल में, मुझे लगता है कि "संसाधन" "लगातार डेटा" है। map.resources 7 रीस्टफुल क्रियाओं को पर रखे गए डेटा के एक विशेष सूट में मानचित्र करता है।

लेकिन मैंने इसके बारे में गहराई से बहुत कुछ नहीं सोचा है। अच्छा प्रश्न!

3

मुझे लगता है कि वे शायद सामान्य वेब अर्थ में यह मतलब है, यानी, Resource (Web):

किसी भी यूनिफ़ॉर्म रिसोर्स पहचानकर्ता का दिग्दर्शन

मुझे नहीं लगता कि यह से कोई लेना देना नहीं है है डेटाबेस टेबल

3

अपना मॉडल फ़ोल्डर खोलें, यह आपके संसाधनों का संकेत है! उदाहरण: उपयोगकर्ता, चित्र, टिप्पणियां ...

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