Как переопределить рельсы 3 моделей двигателей и контроллеров в основном приложении? - PullRequest
1 голос
/ 24 октября 2010

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

Проверяя $ LOAD_PATH, я нашел там 'app / {models, controllers}' движка, но я могуне требуется явно модель двигателя или файл контроллера: требование «engine_name / model_name» завершается неудачно с «no such file» (пробовал как с пространством имен (app / controllers / enginename / *), так и с обычным механизмом).Каков наилучший способ расширения моделей / контроллеров двигателя в рельсах 3 без их копирования в базовое приложение?


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

1 Ответ

4 голосов
/ 26 августа 2012

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

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

Подробнее здесь, http://guides.rubyonrails.org/engines.html#overriding-models-and-controllers

(отредактировано. Изменено с субдомена "edgeguides" на поддомен "guides")

...