ActiveAdmin - 未初始化的常量 AdminUser

Posted

技术标签:

【中文标题】ActiveAdmin - 未初始化的常量 AdminUser【英文标题】:ActiveAdmin - uninitialized constant AdminUser 【发布时间】:2013-05-30 03:02:27 【问题描述】:

我最近安装了 ActiveAdmin,在尝试运行我的应用时遇到错误。本来还好好的,但是闲置了一会儿,突然就不行了!

在我的 gem 文件中:

gem 'activeadmin'

在我的路线中:

  devise_for :admin_users, ActiveAdmin::Devise.config

  ActiveAdmin.routes(self) 

在我的 admin_user.rb 中

ActiveAdmin.register AdminUser do     
  index do                            
    column :email                     
    column :current_sign_in_at        
    column :last_sign_in_at           
    column :sign_in_count             
    default_actions                   
  end   etc....

尝试运行时的错误:

NameError: uninitialized constant AdminUser
~/Desktop/Sites/Fleetnation/app/admin/admin_user.rb:1:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.11/lib/active_support/inflector/methods.rb:230:in `block in constantize'
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.11/lib/active_support/inflector/methods.rb:229:in `each'
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.11/lib/active_support/inflector/methods.rb:229:in `constantize'
...

有人有什么想法吗?将不胜感激。

【问题讨论】:

您迁移数据库了吗? app/models/admin_user.rb 存在吗? 是的......当然 - 错误是在我的管理文件夹中的 admin_user.rb 文件(ActiveAdmin.register AdminUser do etc..)的第一行触发的。 不,你少了一步。 app/admin/admin_user 是仪表板——但实际上你必须有一个作为 ActiveRecord::Base 对象的 app/models/admin_user.rb。 啊,我的错 - 一个疏忽。 app/models/admin_user.rb 确实存在,并且一直存在。现在,无需更改任何内容,该应用程序就可以运行了。这一定是某种类型的本地错误。奇怪的。不过感谢您的帮助! 【参考方案1】:

尝试重新启动 rails 服务器。有类似的问题,重启后就解决了。

【讨论】:

不……恐怕不能解决它! 无论遇到多少次这个问题,安装新gem后总是忘记重启服务器。然后,我看到这样的答案,我记得。谢谢。 我不敢相信这是解决办法。 +1 提醒修复有时也很简单。【参考方案2】:

只要您的模型中存在错误关联,就会引发此错误。如果您更改了任何关联,但忘记更新模型文件,您将收到此错误。

仔细检查您的模型文件。在本地打开活动管理员以查看它给您带来的错误(localhost:3000/admin)。它通常会显示uninitialized constant MyModel:MyBadAssociation,因此可以帮助您诊断错误。

【讨论】:

【参考方案3】:

将 app/models/admin_user.rb 重命名为 app/models/admin_users.rb 对我有帮助。

【讨论】:

以上是关于ActiveAdmin - 未初始化的常量 AdminUser的主要内容,如果未能解决你的问题,请参考以下文章

有 has_many 问题的 ActiveAdmin;未定义的方法'new_record?'

未初始化的常量 ApplicationRecord

未定义的方法和未初始化的常量错误

未初始化的常量 Logger (NameError)

rails 链接表“未初始化的常量”错误

HomePresenter 的未初始化常量