2010-10-24 2 views
1

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

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

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


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

+0

Что вы подразумеваете под «пользователями, чтобы иметь возможность переопределять модели и контроллеры? –

+0

Я имею в виду других разработчиков, которые используют мой движок. Пользователи двигателя) – vitus

+0

Вы пробовали следующее решение? http://stackoverflow.com/questions/2964050/rails-engines-extending-functionality/2990539#2990539 – Andrei

ответ

4

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

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

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

(изм. Изменено от субдомена «краеугольные камни» до поддомена «направляющие»)