2010-03-14 9 views
13

मैं रुबी ऑन रेल्स की रूटिंग सिस्टम से परिचित हूं और साथ ही कोड इग्निटर और पीएचपीके मार्गों को कैसे रूट करता हूं लेकिन एक केंद्रीकृत स्थान होने के बजाय वहां और अधिक है जहां आप निर्देशिका संरचना के आधार पर मार्ग प्रदान करते हैं? इसआराम से रूटिंग क्या है?

controller/action/id/ 
Admin/editUser/22 

उत्तर

2

पूरी संयमपूर्ण चीज़ का एक बड़ा हिस्सा यह है कि आपको विभिन्न कार्यों का प्रतिनिधित्व करने के लिए विभिन्न HTTP विधियों का उपयोग करना चाहिए।

उदाहरण के लिए रेल में यदि आप HTTP Delete से /users/[id] भेजना चाहते हैं तो यह संकेत देगा कि आप उस उपयोगकर्ता को हटाना चाहते हैं। HTTP Get उपयोगकर्ता का उचित प्रतिनिधित्व पुनर्प्राप्त करेगा। HTTP Put उपयोगकर्ता को अपडेट या बना सकते हैं।

ये कुछ उदाहरण हैं, लेकिन चूंकि HTTP में रीस्टफुल एपीआई के लिए कोई मानक नहीं है, इसलिए यह सभी मामलों में सही नहीं है।

12

RESTful रेल मार्गों, मुझे लगता है कि यह बाकी

/users/  method="GET"  # :controller => 'users', :action => 'index' 
/users/1  method="GET"  # :controller => 'users', :action => 'show' 
/users/new method="GET"  # :controller => 'users', :action => 'new' 
/users/  method="POST" # :controller => 'users', :action => 'create' 
/users/1/edit method="GET"  # :controller => 'users', :action => 'edit' 
/users/1  method="PUT"  # :controller => 'users', :action => 'update' 
/users/1  method="DELETE" # :controller => 'users', :action => 'destroy' 
+1

बेशक, कि '/ उपयोगकर्ता/नया' और '/ उपयोगकर्ता/1/संपादित करें' आरईएसटी यूआरआई नहीं हैं (उनमें एक क्रिया रखने के कारण)। उस ने कहा, आपके पास 'कार्यात्मक पृष्ठ' संसाधन के रूप में हो सकता है जिसे आप 'प्राप्त करें' यानी '/ उपयोगकर्ता/उपकरण/निर्माण_form' और '/ उपयोगकर्ता/उपकरण/संपादन_form/1' (दूसरे यूआरआई में नोट मैंने उपयोगकर्ता को जोड़ा है आपके लिए फॉर्म को पॉप्युलेट करने के लिए आईडी) – thecoshman

20

मूल आधार के बजाय यूआरएल पर विशेष रूप से निर्भर क्या आप जिन वेब पृष्ठों के लिए जाना चाहते इंगित करने के लिए (और बस का उपयोग करने का, है के सिद्धांत से पता चलता एक विधि), यह वीईआरबी और यूआरएल का संयोजन है।

इस तरह, एक ही यूआरएल, जब एक अलग क्रिया (जैसे कि GET, PUT, POST, DELETE) के साथ उपयोग किया जाता है, तो आपको एक अलग पृष्ठ पर ले जाएगा। यह क्लीनर, छोटे यूआरएल के लिए बनाता है, और विशेष रूप से सीआरयूडी अनुप्रयोगों के लिए अनुकूल है, जो कि अधिकांश वेब ऐप्स हैं।

1

यह नियंत्रक में एक विशिष्ट कार्रवाई करने के लिए नक्शे HTTP क्रियाएँ + यूआरएल

उदाहरण:

GET /users/1  

को जाता है:

:controller => 'users', :action => 'show' 

पूर्ण मानचित्रण को देखने के लिए, टर्मिनल के लिए जाना , और टाइप:

rake routes 
0

@edtsech सही है। मैं यहां एक और चीज़ जोड़ना चाहता हूं।

अद्यतन के मामले में, विधि एक छिपे हुए फ़ील्ड के साथ "पोस्ट" है जिसमें डेटा को अपडेट करने की आवश्यकता है।

तो पुट = पोस्ट + छुपा क्षेत्र।

+0

मुझे समझ में नहीं आता कि आप यहां क्या कहने की कोशिश कर रहे हैं ... पोस्ट निश्चित रूप से रिकॉर्ड अपडेट करने के लिए उपयोग नहीं किया जा रहा है ... और 'छुपे हुए फ़ील्ड' से आपका मतलब पेलोड है ? – thecoshman

+0

रेल में, रिकॉर्ड अपडेट करने के लिए हम छिपे हुए फ़ील्ड के साथ POST अनुरोध का उपयोग करते हैं जिसमें पेलोड होता है। – Xeeshan

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