नहीं, यह एक बुरा विचार नहीं है। बहुत से लोग इसे करते हैं और मैं इसके बिना बड़े अनुप्रयोगों में नहीं रह सकता था।
पहले सिर्फ अपने मॉडल को स्थानांतरित करने के लिए है:
इसमें करने के दो तरीके हैं। हालांकि, आपको मार्गों को लोड करने के लिए रेल को बताना होगा (क्योंकि यह नहीं पता होगा कि वे कहां हैं)। इस तरह की कुछ चाल चलनी चाहिए:
# In config/application.rb
module YourApp
class Application < Rails::Application
# Other config options
config.autoload_paths << Dir["#{Rails.root}/app/models/*"]
end
end
पहला तरीका आसान है, लेकिन वास्तव में यह सबसे अच्छा तरीका नहीं है। दूसरा तरीका है कि वे कर रहे हैं समूहों के साथ अपने मॉडल नेमस्पेसिंग शामिल है। इसका मतलब है कि बजाय User
और UserGroup
और UserPermissions
होने के, आप User
, User::Group
और User::Permission
है।
इसका उपयोग करने के लिए, इस तरह के मॉडल उत्पन्न करें: rails generate model User::Group
। रेल स्वचालित रूप से आपके लिए सभी फ़ोल्डर्स बनाएंगे।
class User < ActiveRecord::Base
belongs_to :group # Rails will detect User::Group as it's in the same namespace
end
class User::Group < ActiveRecord::Base
has_many :users
end
आप जितने चाहें नेमस्पेसिंग की लेकिन कई स्तरों निर्दिष्ट कर सकते हैं, तो User::Group::Permission
होगा: एक अतिरिक्त लाभ यह है कि इस दृष्टिकोण के साथ, आप एक नाम स्थान के भीतर संगठनों के लिए पूरा मॉडल का नाम उल्लेख करने की जरूरत नहीं होगी मुमकिन।
100 से अधिक मॉडल? क्या यह एक बड़ी परियोजना है? –