0

我正在按照这里的 TutsPlus Modular Rails App 培训开发 Modular Rails 应用程序。

但是,在安装Administrate Gem并运行rails generate administrate:install以安装我的仪表板后,我收到如下图所示的错误:

在此处输入图像描述

简而言之,Administrated Gem 不适用于模块化 Rails 应用程序。我该如何解决这个问题,或者如何让 Administrate Gem 支持命名空间模型???

我做了什么:

我曾尝试对仪表板进行硬编码,但不能仅与 Administrate 一起使用(由于该错误,Rails 无法在 Modular Rails 应用程序中很好地管理 Gem,但可以与 Monolithic Rails 应用程序一起使用)。

4

3 回答 3

1

合并此PR后,Now Administrate 支持命名空间资源。下面是命名空间模型的示例解决方案。假设您在博客命名空间中有一个帖子模型。

模型

app/models/blog/post.rb

现在您要将其添加到管理仪表板。
只需遵循此结构即可使其工作。

配置/路由.rb

namespace :admin do
    namespace :blog do
      resources :posts
    end
    root to: "admin_users#index"
end

#app/admin/blog/posts_controller.rb

module Admin
  class Blog::PostsController < Admin::ApplicationController
  end
end

#app/dashboards/blog/posts_dashboard.rb

require "administrate/base_dashboard"

class Blog::PostDashboard < Administrate::BaseDashboard
  #normal stuff
end

有关详细的解决方案,请查看此讨论

于 2022-01-24T14:02:26.273 回答
-2

仔细阅读并按照说明进行操作,然后更新我

什么是管理?

Administrate 是用于自动生成管理仪表板的 Rails 应用程序库。Administrate 的管理仪表板为非技术用户提供了干净的界面,允许他们为应用程序中的任何模型创建、编辑、搜索和删除记录。

Administrate 解决了与 Rails Admin 和 ActiveAdmin 相同的问题,但旨在为站点管理员提供更好的用户体验,并使开发人员更容易自定义。

为了实现这些目标,Administrate 遵循一些指导原则:

  • 没有 DSL(特定领域的语言)
  • 支持最简单的用例,并让用户使用标准工具(例如普通 Rails 控制器和视图)覆盖默认值。
  • 将库分解为核心组件和插件,因此每个组件都保持小且易于维护。

入门

Administrate 支持从 4.2 到 5.0 及更高版本的 Rails。

将 Administrate 添加到您的 Gemfile 并重新捆绑:

gem "administrate"

然后在你的终端中运行bundle install!!!

包含的安装程序将为您的应用程序中的每个模型创建仪表板,并包含路由:

$ rails generate administrate:install

重新启动服务器,然后访问http://localhost:3000/admin以查看新仪表板的运行情况。

如需更详细的说明或使其适用于仅限 Rails API 的应用程序,请阅读“入门”指南。

于 2017-11-15T09:03:27.837 回答
-3

它支持命名空间:

rails generate administrate:install --namespace=super_admin

使用命名空间创建仪表板:

rails generate administrate:dashboard Model --namespace=super_admin
于 2018-05-28T11:44:14.223 回答