1

我尝试将 ActiveAdmin 安装到已经具有 Admin 模型*的 Rails 应用程序中,并且一切正常,直到我尝试运行需要访问 Admin 类的任何代码(例如运行规范或运行 Rails 服务器)——然后它失败了,好像问题出在我的管理类上:

foo/app/models/admin.rb:1:in `<top (required)>': Admin is not a class (TypeError)
from bar/.rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'

*在我的情况下,我使用了 --skip-users 以便我可以重用我的 Admin 模型,但无论你是否这样做,都会发生这种情况。如果您这样做,也会发生这种情况:

rails generate active_admin:install Admin

如何让 ActiveAdmin 与名为 Admin 的模型(或其他类)共存

4

1 回答 1

4

我花了一些时间才解决这个问题(在我之前的项目中我放弃并只是重命名了模型)。

已经提出了一些补丁,但实际上有一个非常好的配置选项可以解决这个问题:

编辑初始config/initializers/active_admin.rb值设定项,使 default_namespace 不同(您可以使用 跳过 default_namespace config.default_namespace = false,但我没有尝试过)。

我为此选择了 admin_ui:

 config.default_namespace = :admin_ui

这可能有更微妙的地方,所以你可以(如果你愿意)保留 /admin/ 路由而不是拥有 admin_ui 但这对我来说已经足够了——官方文档位于http://activeadmin.info/docs /1-general-configuration.html#namespaces,但不要提及更改命名空间的原因。

于 2013-01-23T12:00:24.307 回答