Проблема, с которой вы столкнулись, заключается в том, что вы не можете добавить новые инициализаторы после запуска процесса инициализации.
Здесь вам требуется код, который регистрирует инициализаторы во время процесса инициализации. Когда вы используете гем в Gemfile, инициализаторы регистрируются в этом коде:
if defined?(Bundler)
# If you precompile assets before deploying to production, use this line
Bundler.require(*Rails.groups(:assets => %w(development test)))
# If you want your assets lazily compiled in production, use this line
# Bundler.require(:default, :assets, Rails.env)
end
Этот код выполняется до начала инициализации. Напротив, вам требуется код resources_controller
в файле инициализатора, который выполняется во время процесса инициализации. В результате уже слишком поздно регистрировать новые инициализаторы.
Что осложняет ситуацию, так это то, что пути загрузки внутри vendor/plugins
также настраиваются во время процесса инициализации, поэтому вы не сможете потребовать resources_controller
в application.rb
.
Самое простое решение вашей проблемы - использовать функцию :path
в компоновщике. После установки плагина добавьте эту строку в ваш Gemfile:
gem 'resources_controller', :path => "vendor/plugins/resources_controller"
Затем вы можете удалить строку require из вашего инициализатора, и bundler распознает, что плагин является локально извлеченным гемом, и сделает то, что сделал бы, если бы вы использовали git.