سؤال

لدي تطبيق قديم 3YR لديه بعض وحدات التحكم مع بعض الإجراءات غير الضرورية للغاية. أحاول تنفيذ مورد جديد له علاقات مع بعض الأكبر سنا، لكنني أرغب في استخدام ActiveScascold لإدارة الموارد المتداخلة بدلا من محاولة إعادة كتابة لوحة السباغيتي التي هي بقية CodeBase. أحتاج إلى كتابة وحدات تحكم جديدة للموارد المتداخلة التي تستخدم ActiveScAffold، لكنني لا أستطيع أن أفقد وحدات التحكم القديمة، ولا يمكنني إعادة تسميتها أيضا. كيف يمكنني الحصول على التكوين ActiveCaffold لالتقاط التكوين للموارد المتداخلة من وحدة التحكم الجديدة بدلا من محاولة النظر إلى وحدة التحكم المسماة بشكل تقليدي للتكوين؟

تشك لمساعدتكم :)

-C.

هل كانت مفيدة؟

المحلول

يمكنك استخدام طريقة تجاوز Active_scaffold_controller_for. من وثائق ActiveScaffold - http://www.activescaffold.com/docs/api-core.

class ApplicationController < ActionController::base

  protected

  def self.active_scaffold_controller_for(klass)
    return FooController if klass == Bar
    return "#{klass}ScaffoldController".constantize rescue super
  end
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top