2011-09-16 15 views
7

हमारे पास एक ऐसी साइट है जहां हमारे पास बैकएंड प्रबंधन इंटरफ़ेस है, और एक फ्रंटेंड जो हमारी जानकारी प्रदर्शित करता है। हम प्रमाणीकरण को सुरक्षित करने के लिए डेविस का उपयोग कर रहे हैं।रेलवे बैकएंड व्यवस्थापक सिस्टम सेटअप के लिए सबसे अच्छा अभ्यास?

बैकएंड को हमारे मॉडल ऑब्जेक्ट्स के सामान्य सीआरयूडी प्रकार के संपादन की अनुमति देनी चाहिए। विचार और लेआउट फ्रंटएंड से भी बिल्कुल अलग हैं। रेल 3 में इसे लागू करने के लिए सबसे अच्छा अभ्यास क्या है?

हमारे दो दृष्टिकोण हैं:

  1. एक व्यवस्थापक दृश्य फ़ोल्डर घरों सभी विशिष्ट कोड है, साथ ही में नियंत्रक फ़ोल्डर घरों सब नियंत्रकों कि व्यवस्थापक विशिष्ट पहुँच को नियंत्रित एक व्यवस्थापक फ़ोल्डर को देखने।
  2. विचारों और नियंत्रकों के एक सेट के साथ एक सशर्त तर्क प्रणाली, यदि बयानों की जांच कर रहे हैं कि उपयोगकर्ता व्यवस्थापक मोड में है या नहीं।

जो अधिक अनुशंसित है, या यदि कोई अन्य दृष्टिकोण है जिसे हमने याद किया है, तो कृपया मुझे बताएं।

उत्तर

15

पहला समाधान बेहतर है, हालांकि इन मामलों के लिए namespaces बनाया गया था और सबसे अच्छा अभ्यास नामस्थानों के साथ जाना है जब आपको उपयोगकर्ता साइट और प्रशासन क्षेत्र के बीच प्रासंगिक भिन्नता की आवश्यकता होती है। इसके बारे में और अधिक पढ़ें here

आपका निर्देशिका संरचना इस तरह दिखना चाहिए:

controllers/ 
    |--admin/ 
     |--posts_controller.rb 

अपने मार्गों में आप सब कुछ आप व्यवस्थापक नेम स्पेस में की जरूरत है डाल:

namespace :admin do 
    resources :posts, :comments 
end 

आपका नियंत्रकों एक admin फ़ोल्डर होना चाहिए , और व्यवस्थापक क्षेत्र में एक नियंत्रक इस तरह दिखेगा:

class Admin::PostsController < ApplicationController 
end 

आप भी अपने विचार, जहां संबंधित विचारों डाल में एक admin फ़ोल्डर होना चाहिए:

views/ 
    |--admin/ 
     |--posts/ 
      |--index.html.erb 
      |--... 

आप भी अपने मॉडल नाम स्थान सकते हैं, लेकिन यह आपकी आवश्यकताओं पर निर्भर करता है, यह अच्छा है जब आप अलग करने की जरूरत है एक ही नाम के साथ मॉडल। उदाहरण के लिए यदि आपको व्यवस्थापक उपयोगकर्ताओं के लिए अलग-अलग तालिका और सामान्य उपयोगकर्ताओं के लिए अलग-अलग तालिका की आवश्यकता है। व्यक्तिगत रूप से मैं मॉडल नामस्थान का उपयोग नहीं करता, बस बहुत ही उचित मामलों में।

दूसरा विकल्प मुझे लगता है कि सिरदर्द का कारण बन सकता है, यदि आप बयानों में खो जाएंगे, तो मैं इसकी बिल्कुल सिफारिश नहीं करता हूं।