我怎样才能拥有一个名为Admin with ActiveAdmin的模型?

时间:2013-01-23 12:00:24

标签: ruby-on-rails-3 activeadmin

我已经尝试将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

的模型(或其他类)共存

1 个答案:

答案 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,但是没有提到改变命名空间的原因。