ruby-on-rails - Rails 5.1 API + ActiveAdmin + Sidekiq

标签 ruby-on-rails activeadmin sidekiq

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/

相关文章:

ruby-on-rails - 在 graphql-ruby 中定义输入类型

ruby-on-rails - Rails 中关联的别名方法

ruby-on-rails - 为 activeadmin 自定义布局(组件)

ruby-on-rails - 使用 Paperclip 时 ActiveAdmin 不上传图像

redis - redis url的最后一部分是什么意思?

ruby-on-rails - 为什么单线程进程有多个 Sidekiq 客户端连接?

ruby-on-rails - 将 Square 与 Rails 项目集成

ruby-on-rails - 了解 Redis、Sidekiq、Heroku 和 Rails 5 的后台 worker

ruby-on-rails - activeadmin 管理员帐户无法访问

ruby-on-rails - 我是否需要将所有内容都放在 sidekiq 的 app/workers 中?