我正在我的应用程序中创建管理面板,我为管理员创建了脚手架用户控制器(用户模型已经存在),如下所示:
rails g scaffold_controller Admin::User username:string password_digest:string role:string
和路线
namespace :admin do
resources :users
resources :dashboard
end
和controllers / admin / users_controllers.erb看起来像
class Admin::UsersController < ApplicationController
# GET /admin/users
# GET /admin/users.json
def index
@admin_users = Admin::User.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @admin_users }
end
end
所以当我去url / admin / users时出现以下错误:
NameError in Admin::UsersController#index
uninitialized constant Admin::User
我如何解决这个问题
由于
答案 0 :(得分:5)
如果您之前存在的User
模型未命名空间,请尝试替换
@admin_users = Admin::User.all
与
@admin_users = ::User.all
答案 1 :(得分:3)
我认为生成器没有创建目录models / admin所以你应该调用User.all而不是Admin :: User.all。
检查user.rb是否在models或models / admin ...
中答案 2 :(得分:0)
在我的特定情况下,我已正确命名文件和类,但包含文件夹的名称错误。
我有:
/models/maps/type.rb
我不得不将其更改为:
/models/map/type.rb
注意单数文件夹名称。将其更改为单数允许Rails自动加载正确的类,并且在运行时不再出现此错误。