मैं अभी रेल्स वेब पर अपनी पहली रूबी के साथ शुरुआत कर रहा हूं। मुझे विभिन्न मॉडलों, विचारों, नियंत्रकों और इसी तरह का एक गुच्छा मिला है।
मैं वास्तव में वैश्विक स्थिरांक की परिभाषाओं को छड़ी करने के लिए एक अच्छी जगह ढूंढना चाहता हूं, जो मेरे पूरे ऐप पर लागू होती है। विशेष रूप से, वे मेरे मॉडल के तर्क में, और मेरे विचारों में लिए गए निर्णयों में दोनों को लागू करते हैं। मुझे इन परिभाषाओं को रखने के लिए कोई भी DRY जगह नहीं मिल रही है जहाँ वे मेरे सभी मॉडलों के लिए उपलब्ध हैं और मेरे सभी विचारों में भी।
एक विशिष्ट उदाहरण लेने के लिए, मुझे एक निरंतरता चाहिए COLOURS = ['white', 'blue', 'black', 'red', 'green']
। यह सभी जगह पर, मॉडल और दृश्य दोनों में उपयोग किया जाता है। मैं इसे केवल एक जगह पर कैसे परिभाषित कर सकता हूं ताकि यह सुलभ हो?
मैंने क्या कोशिश की है:
- Model.rb फ़ाइल में लगातार वर्ग चर जो वे सबसे अधिक संबंधित हैं, जैसे कि
@@COLOURS = [...]
। लेकिन मुझे इसे परिभाषित करने के लिए एक समझदार तरीका नहीं मिल रहा है ताकि मैं अपने विचारों को लिखCard.COLOURS
पाऊं जैसे कुछ कीचड़ भरेCard.first.COLOURS
। - मॉडल पर एक विधि, कुछ ऐसी
def colours ['white',...] end
ही समस्या। - Application_helper.rb में एक विधि - यह वही है जो मैं अभी तक कर रहा हूं, लेकिन सहायक केवल मॉडल में नहीं, विचारों में सुलभ हैं
- मुझे लगता है कि मैंने application.rb या environment.rb में कुछ आज़माया होगा, लेकिन वे वास्तव में सही नहीं लगते हैं (और वे काम नहीं करते हैं)
क्या मॉडल और विचारों दोनों से सुलभ होने के लिए कुछ भी परिभाषित करने का कोई तरीका नहीं है? मेरा मतलब है, मुझे पता है कि मॉडल और विचार अलग-अलग होने चाहिए, लेकिन निश्चित रूप से कुछ डोमेन में कई बार समान डोमेन-विशिष्ट ज्ञान को संदर्भित करने की आवश्यकता होगी?