我已经尝试将ActiveAdmin安装到已经拥有Admin模型*的rails应用程序中并且一切正常,直到我尝试运行需要访问Admin类的任何代码(例如运行规范或运行rails服务器) - 然后它就像我的Admin类问题一样失败了:
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
的模型(或其他类)共存答案 0 :(得分:4)
我花了一段时间来解决这个问题(在之前的一个项目中,我刚刚重新命名了模型)。
已经提出了一些补丁,但实际上有一个非常好的配置选项可以解决这个问题:
在config/initializers/active_admin.rb
编辑初始化程序,以便default_namespace不同(您可以使用config.default_namespace = false
跳过default_namespace,但我没有尝试过这个。)
我为此选择了admin_ui:
config.default_namespace = :admin_ui
这可能会有更多的细微之处,所以你可以(如果你想)保留/ admin / route而不是admin_ui,但这对我来说已经足够了 - 官方文档在http://activeadmin.info/docs/1-general-configuration.html#namespaces,但是没有提到改变命名空间的原因。