नियंत्रक से मॉडल में तर्क को स्थानांतरित करना अच्छा अभ्यास है। लेकिन किसी भी जटिल प्रणाली में, यह हमेशा एक बहुत बड़ी फाइल की ओर जाता है भले ही अधिकांश तरीके रेलवे वे के अनुसार एक लाइनर हैं।रेल पदार्थ मॉडल को व्यवस्थित करने के लिए जो बहुत मोटा हो?
मैंने मॉडल को अन्य मॉड्यूल में विभाजित करने और मूल मॉडल में उन्हें शामिल करने का सहारा लिया है, उदाहरण के लिए, model_flags
, model_validation
, आदि। किसी के पास बेहतर तरीका है?
संपादित करें: मैंने एक नया उत्तर चुना है जो ActiveConcern का उपयोग करने का सुझाव दिया गया है। साथ ही, कोड को व्यवस्थित करने में रुचि रखने वाले किसी भी व्यक्ति के लिए, यह आलेख, Making ActiveRecord Models Thin, बहुत मदद करनी चाहिए।
मैंने रेड डॉट रूबी सम्मेलन (मुझे ग्रेग पोलैक से विश्वास है) से इसके बारे में सीखा, इसलिए हाँ मुझे विश्वास है कि आगे बढ़ना, यह एक बेहतर तरीका है, जो रेल कोर के साथ अच्छी तरह से खेलता है। – Jaryl
एक नोट: शब्दावली (मामले का, जवाब नहीं) भ्रमित होने के समाप्त हो गया। 'ActiveSupport :: Concern' का उपयोग पुन: प्रयोज्य कोड (कई मॉडलों द्वारा) के साथ मॉडल लिखने के लिए किया जाता है, जबकि पैटर्न 'related_with' एक मॉडल को टुकड़ों में विभाजित करने का एक आसान तरीका है। मुझे पहले पसंद है (क्योंकि यह ऐप/lib के बदले ऐप का उपयोग करने के लिए निर्देशित करता है) और मुझे दूसरे के बारे में निश्चित नहीं है (यह सुविधाजनक लेकिन अवधारणात्मक संदिग्ध लगता है)। – tokland
मुझे लगता है कि यह सोचने लायक है कि मॉडल मोटापे को संबोधित करने के लिए चिंताओं का एक तरीका है। Srboisvert नोट्स के रूप में, किसी मॉडल को चिंताओं में विभाजित करने से पहले अपने ऑब्जेक्ट डिज़ाइन पर सवाल करना एक अच्छा विचार है। यहां एक आलेख है जो चर्चा करता है: http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/ – tjstankus