在 Rails_Admin 内安装 Split gem 仪表板

Mount Split gem dashboard within Rails_Admin

我有一个 Rails 4.2 应用程序,它使用 rails_admin 来管理其模型的 CRUD 操作。它需要current_user.admin? == true 访问。

我刚刚使用 Split gem 添加了 A/B 测试。我想使用相同的授权只允许管理员查看拆分仪表板,并且认为最简单的方法可能是在管理面板中创建路由,以便仪表板在示例中可用。com/admin/split.

我可以在 'admin/split' 上安装 Split::Dashboard,但这完全绕过了管理员授权。

相反,我想添加一个带有 rails_admin 仪表板的 button/link,重定向到 admin/split,仪表板安装在 rails_admin.

感谢帮助。

split 的网络界面是一个 sinatra 应用程序。仅通过将 rails_admin 引擎安装到相同的 url 路径,它不会知道任何有关 rails_admin 引擎的信息。查看拆分接口 https://github.com/splitrb/split#web-interface 的文档。 和 https://steve.dynedge.co.uk/2011/12/09/controlling-access-to-routes-and-rack-apps-in-rails-3-with-devise-and-warden/

Rack::Auth::Basic 显然不适合你,因为它是基本的 http 身份验证。因此,您必须通过粘贴自定义请求中间件来使用第二种方法。 current_user 在那里不可用,因为它是由典型的 auth gem 添加到 rails 控制器中的。但是,如果您的库使用 warden 进行身份验证(就像设计一样),信息将在 request.env['warden'] 中。否则,您将不得不从 request.env["rack.session"]

中获取会话 ID