我正在通过TutsPlus模块化Rails应用程序培训here开发模块化Rails应用程序。
然而,在安装 Administrate Gem 并运行rails generate administrate:install
安装我的 Jmeter 板后,我得到了如下图所示的错误:
的数据
简而言之,Administered Gem不适用于模块化Rails应用程序。我该如何解决这个问题,或者我该如何让AdministrateGem支持命名空间模型???
我做了什么:
我试过硬编码一个 Jmeter 板,但不只是与管理工作(Rails只是不能罚款管理宝石在一个模块化的Rails应用程序,因为这个错误,但与一个单片Rails应用程序)。
4条答案
按热度按时间gmxoilav1#
合并此PR后,Now Administrate支持命名空间资源。下面是命名空间模型的示例解决方案。假设您在blog名称空间中有一个post模型。
型号
字符串
现在,您想将其添加到管理面板。
只要遵循这个结构就可以了。
config/routes.rb
型
#app/admin/blog/posts_controller.rb
型
#app/dashboards/blog/posts_dashboard.rb
型
有关详细的解决方案,请查看此discussion
yrwegjxp2#
如果你想弄清楚如何将单表继承(STI)模型添加到你的Administrate Jmeter 板中,下面是我如何使用Administrate gem的
0.18.0
版本来实现这一点的:1.使用gem的generator为模型的基类搭建一个新的控制器和dashboard对象:
字符串
1.将命名空间路由定义添加到
routes.rb
文件中:型
1.将新生成的控制器移动到具有模型命名空间名称的子文件夹中。例如,
controllers > admin > bases_controller.rb
变为controllers > admin > foo > bases_controller.rb
1.通过覆盖
find_resource(param)
方法更新控制器。注意becomes
的使用这是必要的,因为如果没有它,Administrate gem将尝试基于特定的模型示例类(如Foo::Bar
)生成路径,但在上面的routes.rb
文件中,我们只添加了Foo::Base
类的路由。型
1.最后,您需要添加一个自定义屈折器来处理单词
Base
的复数化。如果没有它,由于某种原因,Rails将Base
复数化为Basis
,而不是Bases
(Administrate期望后者)。如果不这样做,您将看到如下错误消息:型
就是这样!
我应该做一个PR来更新生成器的行为,以便自动为STI模型执行此操作,但与此同时,这些变通方法让我的命名空间模型添加到 Jmeter 板中。
blmhpbnm3#
仔细阅读并遵循说明,然后更新我
什么是管理?
Administrate是一个Rails应用程序库,可以自动生成管理 Jmeter 板。Administrate的管理 Jmeter 板为非技术用户提供了干净的界面,允许他们为应用程序中的任何模型创建、编辑、搜索和删除记录。
Administrate解决了与Rails Admin和ActiveAdmin相同的问题,但旨在为站点管理员提供更好的用户体验,并使开发人员更容易自定义。
为了实现这些目标,Administrate遵循以下几个指导原则:
入门
Administrate支持Rails 4.2到5.0及更高版本。
将Administrate添加到Gemfile并重新绑定:
字符串
然后在终端中运行
bundle install
!!!包含的安装程序将为您的应用中的每个模型创建 Jmeter 板,并包含路由:
型
重新启动服务器,然后访问http://localhost:3000/admin以查看新 Jmeter 板的运行情况。
要获得更详细的说明或使其与Rails API应用程序一起工作,请参阅“入门”指南。
6qftjkof4#
它支持命名空间:
字符串
要创建带有命名空间的 Jmeter 板,请执行以下操作:
型