Я бы хотел защитить страницы rails_admin
с помощью гема sorcery
.Согласно этому SO-ответу , способ сделать это следующий:
# config/initializers/rails_admin.rb
RailsAdmin.config do |config|
config.authenticate_with do
# Use sorcery's before filter to auth users
require_login
end
end
# app/controllers/application_controller.rb
class ApplicationController
# Overwrite the method sorcery calls when it
# detects a non-authenticated request.
def not_authenticated
# Make sure that we reference the route from the main app.
redirect_to main_app.login_path
end
end
Это переопределяет метод колдовства по умолчанию для обработки отсутствия входа в систему.Переопределение работает в моем приложении, но когда я посещаю страницы rails_admin, я получаю следующую ошибку:
undefined local variable or method `root_path' for #<RailsAdmin::MainController.
, поэтому переопределение не работает в коде rails_admin.Я монтирую rails_admin внизу моего файла маршрутов с помощью
# config/routes.rb
...
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
Как мне это исправить?