मैं इसी तरह के सवाल पता से पहले उत्तर दिया गया है - जैसे:रेल: स्कीनी कंट्रोलर बनाम फैट मॉडल, या क्या मुझे अपना कंट्रोलर एनोरेक्सिक बनाना चाहिए?
- तर्क कहां जाना चाहिए
- जहां कुछ कार्य करने के लिए, आदि
लेकिन मैं एक और अधिक विशिष्ट प्रश्न है - कैसे मुझे यह सिद्धांत लेना चाहिए: अपने नियंत्रक पतला रखें, अपना मॉडल वसा बनाएं!
उदाहरण के लिए मान लीजिए कि मैं सत्यापन डेटा के कई स्रोत हैं:
यहाँ एक उदाहरण है। एक अच्छा उदाहरण एक वीआईएन नंबर होगा - मैं निर्माता डेटा स्रोत, डीएमवी के डेटा स्रोत, मेरे स्थानीय डेटाबेस के खिलाफ इसे सत्यापित कर सकता हूं - यह देखने के लिए कि मेरे पास रिकॉर्ड पर क्या है। तो मेरे पास विन और vins_controller नामक एक मॉडल है। मॉडल के अंदर मैं 5 तरीकों:
- check_against_local_db
- check_against_dmv
- check_against_car_maker_1
- check_against_car_maker_2, आदि
मेरी नियंत्रक में आराम के साथ रखने, कार्रवाई शो में - मेरे पास है एक साधारण मामला कथन जो पैरा [: स्रोत] को देखता है, और निर्दिष्ट स्रोत पर आधारित - विशिष्ट चेक विधि को कॉल करेगा।
अब यहाँ सवाल यह है: मैं तर्क को नियंत्रित करता है कि जो डेटा स्रोत नियंत्रक में कॉल करने के लिए या मैं इसे नियंत्रक में बढ़ना चाहिए मॉडल करने के लिए और फिर बस (, विन स्रोत) check_vin की तरह कुछ करना छोड़ देना चाहिए?
क्या मुझे अपना नियंत्रक एनोरेक्सिक बनाना चाहिए?
संपादित
मैं @ जय-गोडसे की ओर से आधिकारिक जवाब देने के लिए इस स्विचिंग कर रहा हूँ (धन्यवाद - समय में यह एक अच्छा जवाब था)। 2010 से चीजें बहुत बदल गईं और इस सवाल को अभी भी कुछ विचार मिलते हैं - इसलिए उम्मीद है कि यह कुछ लोगों को सही दिशा में इंगित करेगा और उन्हें अपने कोड को सही तरीके से व्यवस्थित करने में मदद करेगा।
Trailblazer gem प्रश्न में वास्तव में प्रश्नों को हल करने में समस्याएं हल करती हैं।
मैं आधिकारिक जवाब देने के लिए इस स्विचन हूँ। चीजें 2010 से बहुत बदल गईं और इस सवाल को अभी भी कुछ विचार मिलते हैं - इसलिए उम्मीद है कि यह कुछ लोगों को सही दिशा में इंगित करेगा। Trailblazer वास्तव में अच्छी तरह से सवाल में लाई समस्याओं को संबोधित करता है। – konung