Ошибка включая разработку в рельсах 4 полного двигателя
Я пишу полный движок, который будет включать в себя устройство, следующее за этим руководством. Однако это руководство основано на монтируемом двигателе, а не на полном двигателе, что, я думаю, может быть причиной следующей ошибки:
RuntimeError: Rails::Application::RoutesReloader#execute_if_updated delegated to updater.execute_if_updated, but updater is nil: #<Rails::Application::RoutesReloader:0x007f843d9518e8
routes.rb
Rails.application.routes.draw do
# Some other stuff
devise_for :users, {
class_name: 'User',
module: :devise
}, controllers: {
registrations: 'users/registrations',
sessions: 'users/sessions',
passwords: 'users/passwords'
}
end
Инициализаторы /devise.rb
Devise.setup do |config|
config.router_name = :user
config.secret_key = 'secret_key'
end
Библиотека /my_engine/engine.rb
module MyEngine
class Engine < ::Rails::Engine
require "devise"
end
end
1 ответ
Решение
Rails не показывает правильную ошибку из-за проблемы, найденной здесь: https://github.com/rails/rails/issues/10559
Попробуйте отформатировать инструкцию devise_for следующим образом:
devise_for :users, {
class_name: 'User',
module: :devise,
controllers: {
registrations: 'users/registrations',
sessions: 'users/sessions',
passwords: 'users/passwords'
}
}
Похоже, ваш файл devise.rb был сгенерирован старой версией гема. Попробуйте удалить devise.rb и запустить rails g devise:install