القضبان - وحكم اثنين أو إضافة الإجراءات؟
-
16-09-2019 - |
سؤال
تصميم تطبيق ويب مع قسم المسؤول وقسم مواجهة عامة. يبدو أن وجود وحدة تحكم مواجهة عامة فقط ل "الفهرس" و "العرض" أمر زائد بعض الشيء. تشير جميع الاقتراحات التي قرأتها إلى مساحة اسم للمسمير، وهو أمر جيد. أتساءل فقط إذا كان يجب أن يكون لديك وحدة تحكم واحدة مع إجراء إضافة، قل "List_Public" أو شيء من هذا القبيل.
أنا جديد مع القضبان، لذلك ربما أنا قلق فقط من لا شيء. أنا فقط لا أحب فكرة وجود كل هذه وحدات التحكم، والمناظر، المساعدين بنفس الاسم المنتشرة في جميع أنحاء أدلة المشروع.
أي شخص لديه أي نظرة ثاقبة لهذا؟ شكرا لك مقدما.
المحلول
أود أن أقول إن تناول كل من وحدات تحكم (عامة واحدة، ومسؤول واحد) هو الحل الأفضل.
الآن ما يمكنك فعله هو الحصول على كل من وحدات التحكم في استدعاء نفس الطريقة التي تقوم بها الإجراءات ذات الصلة في الإجراءات.
class MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
end
end
class Admin::MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
# Admin only stuff goes here
end
end
نصائح أخرى
كما قال مات، ولكن يمكنك أيضا القيام بذلك:
class MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
end
end
class Admin::MyController < MyController
def show
super
# Admin only stuff goes here
end
end
هذا يعني أنه يمكنك التركيز فقط على الحالات الأكثر تخصصا للمسؤول :: MyController بدلا من رمز التكرار.