2

我正在尝试将 Active Admin 添加到 Rails 应用程序中,该应用程序已经有一个定制的 CMS 和 Admin 模型/admin,并且已经使用了设计 gem,但是当我尝试运行时rails g active_admin:installrake db:migrate我收到了这个错误:

/usr/local/rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activeadmin-0.6.0/lib/active_admin/namespace.rb:227:in `eval': Admin is not a module (TypeError)
from /usr/local/rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activeadmin-0.6.0/lib/active_admin/namespace.rb:227:in `eval'
from /usr/local/rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activeadmin-0.6.0/lib/active_admin/namespace.rb:227:in `register_module'
from /usr/local/rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activeadmin-0.6.0/lib/active_admin/namespace.rb:41:in `initialize'
from /usr/local/rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activeadmin-0.6.0/lib/active_admin/application.rb:142:in `new'
from /usr/local/rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activeadmin-0.6.0/lib/active_admin/application.rb:142:in `namespace'
from /usr/local/rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activeadmin-0.6.0/lib/active_admin/application.rb:128:in `register'
from /usr/local/rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activeadmin-0.6.0/lib/active_admin.rb:79:in `register'

我知道可以在安装创建的初始化程序中设置默认命名空间,但我想知道是否有办法将我选择的默认命名空间作为安装命令的选项传递?

提前致谢!

4

1 回答 1

1

好的 - 终于想通了:

我保留了第一次运行 Active Admin 安装命令时创建的 active_admin.rb 初始化程序,并删除了它创建的所有其他文件。然后我将此行添加到初始化程序:

config.default_namespace = :my_custom_admin_namespace

并再次运行安装,跳过设计用户类(如此建议),如下所示:

rails g active_admin:install --skip-users

我运行了我的迁移,然后我能够访问 myapp.co.uk/my_custom_admin_namespace。起初,我确实看到了一个关于身份验证用户的未知方法的错误(考虑到我跳过了创建用户类,这是有道理的),所以我在初始化程序中注释掉了以下两行:

config.authentication_method = :authenticate_admin_user!
config.current_user_method = :current_admin_user

现在我可以看到仪表板了。这还不是一个理想的设置,因为它缺少用户类和任何身份验证,但它是一个开始。

于 2013-04-17T17:32:38.817 回答