Я надеялся сделать приложение Rails пригодным для использования как в качестве движка, так и в качестве отдельного приложения.
В частности, у меня есть новое приложение, которое я хотел бы подключить к сайту клиента, но в идеалеЯ хотел бы так же легко использовать приложение, как автономную систему.Тем не менее, если config / environment / *. Rb существуют в версии моего приложения с расширенным доступом, я получаю ошибку Uninitialized Constant во время запуска приложения, которое у меня зависит от моего движка;Rails жалуется, что константа MyEngineModule :: Application не может быть найдена в development.rb, что, я думаю, является просто проблемой порядка загрузки, так как это НЕ происходит, когда я запускаю приложение автономно.Если я удаляю development.rb, исходные инициализаторы, ссылающиеся на мой MyEngineModule :: Application, будут жаловаться, поэтому я попытался удалить их, и все хорошо.
Отлично, за исключением того, что исходное приложение не работает,поскольку его конфигурация исчезла.
Есть ли какая-то настройка, которую я могу внести в порядок загрузки инициализации (или пути загрузки, в определении класса Engine
Возможно, более простой ответ, но я чувствую себя упрямым и хотел бы знать, что нужно сделать, чтобысделать возможной мою первоначальную цель:
- распаковать код для MyEngine в движок, удалить файлы config / environment / * и config / initializer / * файлы, и заставить клиентское приложение зависеть от этого.
- Сделать «новое» минималистское приложение зависимым от MyEngine и переместить файлы среды и инициализаторы в NewApp.
Если я чувствую какое-то неестественное принуждение сохранять работоспособность моего исходного приложения такой, какой оно было, если я хочу предотвратить загрузку конфигурации "движком" конфигурации "приложения", каков наилучший способ справиться с этим??Я предполагаю, что это действительно проблема только во время разработки, потому что я могу предотвратить попадание файлов environment / *. Rb в сам гем, но мне нравится иметь возможность локального тестирования во время разработки движка и его клиентского приложения.