ما هي أفضل طريقة للتعامل مع اتصالات قاعدة البيانات لكل نموذج باستخدام ActiveRecord؟
-
02-07-2019 - |
سؤال
أريد الطريقة الأساسية للقيام بذلك.لقد أصبحت عمليات البحث التي قمت بها على Google قصيرة.لدي نموذج ActiveRecord واحد يجب تعيينه إلى قاعدة بيانات مختلفة عن بقية التطبيق.أرغب في تخزين التكوينات الجديدة في ملف data.yml أيضًا.
أدرك أنه يجب استدعاء Found_connection، لكن ليس من الواضح أين.إليك ما حصلت عليه حتى الآن، وهو لا يعمل:
class Foo < ActiveRecord::Base
establish_connection(('foo_' + ENV['RAILS_ENV']).intern)
end
المحلول
ومن الجيد أيضًا أن تقوم بتصنيف النموذج الخاص بك إلى فئة فرعية تستخدم قاعدة بيانات مختلفة، مثل:
class AnotherBase < ActiveRecord::Base
self.abstract_class = true
establish_connection "anotherbase_#{RAILS_ENV}"
end
وفي النموذج الخاص بك
class Foo < AnotherBase
end
يكون ذلك مفيدًا عندما تحتاج إلى إضافة نماذج لاحقة يمكنها الوصول إلى نفس قاعدة البيانات الأخرى.
نصائح أخرى
هيه.كنت على حق!أكثر نظافة:
class Foo < ActiveRecord::Base
establish_connection "foo_#{ENV['RAILS_ENV']}"
end
ملصق ممتاز في pragedave.pragprog.com.
لا تنتمي إلى StackOverflow