为什么我在创建新资源时在Active Admin中获得“未初始化的常量”

时间:2014-02-07 16:10:08

标签: ruby-on-rails ruby-on-rails-4 activeadmin

我已经设置了Rails活动管理员,界面加载就好了,这里是我在Gemfile中的设置:

# Use all the things Active Admin needs ================== 
gem 'devise',              github: 'plataformatec/devise'
gem 'responders',          github: 'plataformatec/responders'
gem 'inherited_resources', github: 'josevalim/inherited_resources'
gem 'ransack',             github: 'ernie/ransack'
gem 'activeadmin',         github: 'gregbell/active_admin', branch: 'rails4'
gem 'formtastic',          github: 'justinfrench/formtastic'

gem "friendly_id", "~> 5.0.2"

我可以转到/ admin,它可以很好地加载界面。

我唯一的问题是当我说做命令时:

rails generate active_admin:resource Pages

它在我的/app/admin/pages.rb中生成资源,但是当我重新加载页面时,我收到错误。

完整的错误消息:

NameError
uninitialized constant Pages

Extracted source (around line #1):
1 ActiveAdmin.register Pages do
2
3 end

Rails.root: /Freelance/Current Projects/Birch/forge

Application Trace | Framework Trace | Full Trace
app/admin/pages.rb:1:in `<top (required)>'
config/routes.rb:2:in `block in <top (required)>'
config/routes.rb:1:in `<top (required)>'
This error occurred while loading the following files:
   /Freelance/Current Projects/Birch/forge/config/routes.rb
   /Freelance/Current Projects/Birch/forge/app/admin/pages.rb

有没有人知道为什么会这样?我没有做任何事情来打破它或任何事情,所以不确定它可能是什么。

1 个答案:

答案 0 :(得分:2)

生成资源时,使用复数形式。您应该使用模型的单数名称运行它。默认情况下,寄存器将查找传递给ActiveAdmin.register方法的类。要解决此问题,假设您有一个名为Page的模型,只需删除管理文件顶部s末尾的Pages广告。

ActiveAdmin.register Page do
end

一般惯例是以单数形式命名管理文件。