Как переопределить рельсы 3 моделей двигателей и контроллеров в основном приложении?

Я хочу иметь возможность переопределять модели и контроллеры моего двигателя rails 3 в базовом приложении.

Изучив $LOAD_PATH, я нашел там "app/{models,controllers}" движка, но я не могу явно требовать модель двигателя или файл контроллера: требование "engine_name / model_name" завершается с ошибкой "нет такого файла" (пробовал с обоими пространствами имен (app/controllers/enginename/*) и обычный движок).

Итак, каков наилучший способ расширить модели / контроллеры двигателя в рельсах 3, не копируя их в базовое приложение?


По сути, это проблема порядка загрузки. Так что, если мне явно требуется модель из движка, все в порядке, но я надеюсь, что есть лучший способ.

1 ответ

Так что я на самом деле вернулся и написал документацию. Ответ заключается в том, чтобы открыть классы Controller и Model, используя либо

  • Класс # eval_class
  • ActiveSupport:: Концерн

Более подробно здесь, http://guides.rubyonrails.org/engines.html

(отредактировано. Изменено с поддоменов "направляющие" на поддомен "направляющие")

Другие вопросы по тегам