Ruby on Rails - NameError:未管理的常量UsersController at / admin / users

时间:2014-06-04 00:13:47

标签: ruby-on-rails ruby devise routes ruby-on-rails-4.1

我在管理员下添加了用户资源,以允许管理员控制/修改用户帐户。但我收到关于未初始化的常量UsersController 的错误。用户帐户由设计处理。目前我只想创建索引页面以列出每个用户。以下是相关的部分:

/app/controllers/admin/users_controller.rb

class Admin::UsersController < ApplicationController

  def index
    @users = User.all
  end

end

我确保在我的路线开头有我的devise_for:用户。

/conig/routes.rb

Rails.application.routes.draw do
  devise_for :users

  scope "/admin" do
    resources :users
  end

  root :to => "visitors#index"
end

我知道这个观点不是问题。我正在尝试加载的页面显示此错误。

Rails Error Output

除此之外一切正常。我是否需要以不同方式处理UsersController?例如,我是否需要从Devise控制器继承?

1 个答案:

答案 0 :(得分:3)

scope假设您要将控制器放在命名空间中(因此,范围只有UsersController而不是Admin::UsersController,而且没有/ admin目录。如果要使用Admin命名空间/目录,则需要像这样定义路由:

  namespace :admin do
    resources :users
  end

另外,您可以使用rake routes查看路线指向的内容。尝试使用scope vs namespace运行它,您将看到它如何改变。