2009-07-24 7 views
8

मैं अपने रेल ऐप में कई नियंत्रकों के बीच विचारों से संबंधित कोड साझा नहीं करना चाहता हूं। निर्देशिका संरचना में कहां रखा जाना चाहिए?रेल कोड को कहां रखा जाए जो मॉडल, दृश्य, नियंत्रक या सहायक नहीं है?

संपादित करें: प्रश्न में कोड अगर कुछ सभी नियंत्रकों का उपयोग कैसे वे मॉडल डेटा

+0

यह डेटाबेस इकाइयों से संबंधित नहीं है, या तो (मॉडल कोड नहीं) –

+1

मॉडल डेटाबेस से संबंधित होने की आवश्यकता नहीं है। वे सिस्टम द्वारा उपयोग किए गए डेटा का प्रतिनिधित्व करते हैं, भले ही यह संग्रहीत है या नहीं। – Pesto

+0

यह क्या है? आप केवल यह बताते हैं कि यह क्या नहीं है, लेकिन यह नहीं है कि यह क्या है। – txwikinger

उत्तर

8

कोड इन में उपयोगिता के तरीकों के साथ मॉड्यूल की तरह कुछ lib फ़ोल्डर में रखा जा सकता है, तो प्रस्तुत करना निर्धारित करने के लिए। वैकल्पिक रूप से यदि आप व्यवहार साझा करते हैं तो आप अपने कुछ नियंत्रकों के लिए एक सामान्य सुपरक्लास बना सकते हैं।

कृपया जिस प्रकार के कोड के बारे में सोच रहे हैं उसका एक उदाहरण पोस्ट करें।

0

व्यक्तिगत रूप से मुझे लगता है कि यह ठीक है, अगर इसका नियंत्रक इसे आपके नियंत्रक निर्देशिका में रखता है, लेकिन मॉड्यूल के रूप में लेबल किया गया है, उदा। app/controllers/what_am_i_module.rb क्योंकि यह विकास में आवेदन के लिए विशिष्ट है।

lib मुझे एक जगह की तरह लगता है जहां मैं फ्रेमवर्क/कोर एन्हांसमेंट्स या बंदर पैच रखूंगा जो एप्लिकेशन के लिए विशिष्ट नहीं हैं।

5

यदि यह "कुछ नियंत्रक उपयोग करते हैं" है, तो मैं इसे सभी नियंत्रकों द्वारा उपयोग की जाने वाली बेस क्लास में रखूंगा। "Application_controller" दिमाग में आता है।

+0

+1 मुझे भी application_controller.rb जैसा लगता है। – cakeforcerberus

2

मैं अन्य वर्गों को कोड प्रदान करने के लिए lib में मॉड्यूल बना रहा हूं।

यहां एक संक्षिप्त उदाहरण मॉड्यूल है जो विभिन्न नियंत्रकों से तत्काल विचारों के लिए मूल्यों को परिभाषित करता है।

module ControllerDefaultValues 
    def default_value_for_some_controller() 
    @controller_name = "some_controller" 
    end 
end 

इस का उपयोग करने के लिए बस अपनी कक्षा में मॉड्यूल में शामिल हैं:

class SearchesController 
    include ControllerDefaultValues 
    # 
    def search_some_controller 
    default_value_for_some_controller() 
    render(:partial => "search_results") 
    end 
end 

इस विधि का मुख्य लाभ यह अपने नियंत्रकों निर्देशिका नियंत्रकों पर ध्यान केंद्रित करने और अपने मॉडल निर्देशिका तर्क पर ध्यान केंद्रित रखता है।

0

यह आपके सभी नियंत्रकों द्वारा इस्तेमाल किया जा रहा है, तो application_controller.rb

अपने सभी नियंत्रकों ApplicationController से विरासत में यह छड़ी, तो वे उन सभी का लाभ उठा सकेंगे।

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