2012-08-09 13 views
18

मैं इस विषय पर बहुत कुछ पढ़ रहा हूं और कुछ भी मेरी आवश्यकताओं को पूरा करने में प्रतीत नहीं होता है। मुझे खेद है कि अगर मैं दोहराना या अस्पष्ट हूं, तो मैं रूबी और रेल के लिए नया हूं और स्टैक ओवरफ्लो में नया हूं।रेल मणि युक्त एक मणि बनाना

मेरे पास इसमें कई बुनियादी ढांचे के साथ मौजूदा रेल आवेदन है। मैं इसके कुछ मॉडल लेना चाहता हूं, उन्हें नामस्थान में घोंसला देना और अन्य रेल अनुप्रयोगों में उपयोग के लिए इसे एक रूबी मणि में डाल देना चाहता हूं। मेरी समझ से रेल के लिए लोडिंग पथों में समस्या है क्योंकि वे एक सम्मेलन हैं और एक अन्य इंजन को परिभाषित करने में समस्या है, तब आपके पास दो हैं और वे दुर्घटनाग्रस्त हैं।

मैं बिना किसी किस्मत के इसे कैसे करना है, यह जानने के लिए एक गाइड या ट्यूटोरियल की तलाश कर रहा हूं, लेकिन मैं सकारात्मक हूं कि अगर कोई मुझे उस पर इंगित कर सकता है तो वह कुछ अद्भुत होगा।

इंजन के साथ एक मणि बनाने के मेरे प्रयास टकराव या रेल की कमी पर विफल रहता है।

मैं रेल 3.2.3 और रूबी 1.9.3 चला रहा हूं।

+1

जिस समस्या का आप वर्णन कर रहे हैं वह आम तौर पर आपके कोड को नए रेल इंजन पर रीफैक्टर करके हल किया जाता है। आप इंजन बनाने की कोशिश कैसे कर रहे हैं, और आप वास्तव में क्या त्रुटियां प्राप्त कर रहे हैं? – PinnyM

+1

जहां तक ​​एक गाइड है, आपने [इस] (http://edgeguides.rubyonrails.org/engines.html) या [यह] (http://stackoverflow.com/questions/4993166/making-a- कस्टम प्लगइन-मणि-इंजन के लिए रेल-3-एप्लिकेशन)? – PinnyM

+0

मैं कोशिश करता हूं और बेहतर वर्णन करता हूं कि मैं क्या करने की कोशिश कर रहा हूं: मैंने पोस्ट, टिप्पणियां और टैग के साथ मूल रेल ट्यूटोरियल (ब्लॉग) के लिए नमूना ऐप बनाया है। अब कहें कि मैं टैग लेना चाहता हूं और इसे एक मणि में बनाना चाहता हूं जैसे कि कोई भी रेल ऐप किसी भी मॉडल पर टैग जोड़ सकता है। मैंने जो कुछ करने की कोशिश की वह सब कुछ टैग (मॉडल, आंशिक, माइग्रेशन) युक्त एक मणि बना रहा था और मैंने मणि कहा, तो जब मुझे इसकी आवश्यकता होती है तो मुझे बाहर निकाल दिया जाता है, उदाहरण के लिए यदि मैं आईआरबी चलाता हूं (दूसरी टिप्पणी में आउटपुट पोस्ट करता हूं क्योंकि मैं ' 001> "tag_model_gem" NameError की आवश्यकता होती है: वर्ण – Shrewd

उत्तर

1

इस मैनुअल के साथ शुरू - http://guides.rubyonrails.org/engines.html

comand

$ rails plugin new "EngineName" --mountable 

आप इंजन में सब है कि आप की जरूरत है, मॉडल, नियंत्रकों e.t.c डाल से के साथ एक इंजन बनाएँ। इससे मणि उत्पन्न करें। इस मणि को MasterApp में जोड़ें। सभी मॉडल इंजन नाम नामस्थान के तहत उपलब्ध होंगे।

+1

प्रश्न यह नहीं है कि एक माउंटेबल प्लगइन कैसे बनाया जाए, लेकिन प्लगइन में चीजों को जोड़ा जा रहा है और पृष्ठभूमि में चुपचाप काम करने के लिए बनाया गया है । – Shrewd

17

हां, आप मॉडल युक्त एक मणि बना सकते हैं और उन्हें कई रेल अनुप्रयोगों में शामिल कर सकते हैं।

  • एक रत्न बनाएं:: यह एक तरीका है यह करने के लिए है bundle gem demo_gem

  • या demo_gem में अपना मॉडल चलते हैं। मैं उन्हें lib/ मणि के फ़ोल्डर जैसे demo_gem/lib/app/models/student.rb में डालना पसंद करता हूं।

    module DemoGem 
        class Student < ActiveRecord::Base 
        end 
    end 
    
  • demo_gem में अपने सभी मॉडलों की आवश्यकता होती है/lib/demo_gem.rb

    require "demo_gem/version" 
    require "demo_gem/app/models/student.rb" 
    module DemoGem 
        # Your code goes here... 
    end 
    
  • अपने रेल अनुप्रयोगों में मणि Gemfile शामिल करें (मैं यह सोचते हैं रहा है कि अपने कोड नहीं है खुला स्रोत और आप मणि प्रकाशित करने के लिए योजना नहीं है):

    gem 'demo_gem', path: '../demo_gem' 
    

अब आप DemoGem::Student का उपयोग करके इन मॉडलों का उपयोग कई रेल अनुप्रयोगों में कहीं भी कर सकते हैं।

यह माना जाता है कि आप एकल डेटाबेस का उपयोग कर रहे हैं और तालिकाएं मौजूद हैं। हालांकि आप मणि में माइग्रेशन बना सकते हैं और उन्हें Rails generators का उपयोग करके ऐप पर कॉपी कर सकते हैं।