A 有一个由 Angular 应用程序使用的 Rails 5.1 API。 我已将 ActiveAdmin 集成到/admin 路径下。 我还集成了 Sidekiq:Web。
我希望 Sidekiq:Web 只能由管理员用户(ActiveAdmin 管理员)访问,因此我将以下行添加到我的路由中:
devise_for :admins, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
authenticate :user, lambda { |u| u.admin? } do
mount Sidekiq::Web => '/admin/sidekiq'
end
当我运行应用程序并尝试访问/admin/sidekiq 时,我被重定向到“http://localhost:3000/api/v1/user/sign_in ”并收到以下消息:
{"errors":["Use POST /sign_in to sign in. GET is not supported."]}
有什么想法吗?
最佳答案
我认为您将 Admin
表用于事件管理“管理员”。因此,您还需要对admin
用户进行身份验证。这很棘手,但默认情况下,事件管理员会创建另一个表来处理管理员用户,它不应该与您的 User
表相关
devise_for :admins, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
authenticate :admin do
mount Sidekiq::Web => '/admin/sidekiq'
end
关于ruby-on-rails - Rails 5.1 API + ActiveAdmin + Sidekiq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54582438/