У меня проблемы с настройкой Devise правильно с двигателями.
В моем движке У меня есть:
config/initializers/devise.rb
config.router_name = :portal_core
config/routes.rb
devise_for :users, class_name: 'PortalCore::User', module: :devise
app/models/portal_core/user.rb
module PortalCore
class User < ApplicationRecord
...
devise :database_authenticatable, :trackable, :confirmable,
:recoverable, :rememberable, :validatable, :lockable
end
end
Все мои тесты проходят здесь.Затем в одном из моих приложений host у меня есть:
config/routes.rb
devise_for :admin_users, class_name: 'AdminUser'
app/models/admin_user.rb
class User < ApplicationRecord
...
devise :database_authenticatable, :trackable,
:recoverable, :rememberable, :validatable
end
Когда я запустилэтот тест в приложении хоста:
context "When not logged in" do
it "redirect to new user session when try to access index" do
process :index, method: :get, params:{}
expect(response).to redirect_to(new_admin_user_session_path)
end
end
Я получил эту ошибку: NoMethodError: неопределенный метод `portal_core 'для # Devise :: FailureApp: 0x0000000008c9f1f0>
IfЯ монтирую маршруты двигателя в хост-приложении:
mount PortalCore::Engine => '/portal_core'
Затем я получил эту ошибку: Ожидаемый ответ для перенаправления на http://test.host/admin_users/sign_in, но был перенаправлением на http://test.host/.
И если я пытаюсь запустить сервер, он продолжает перенаправлять с 401 Unauthorized
Возможно, какая-то конфигурация отсутствует, но я не могу понять, что.