Ruby on Rails-NameError:/admin/usersで初期化されていない定数UsersController
-
21-12-2019 - |
質問
管理者がユーザーアカウントを制御/変更できるように、管理者の下にユーザーリソースを追加しました。しかし、私は約エラーを取得しています 初期化されていない定数UsersController.ユーザーアカウントはdeviseによって処理されます。現在、各ユーザーをリストするインデックスページを作成したいだけです。関連する部分は次のとおりです:
/app/controllers/admin/users_controller.rb
class Admin::UsersController < ApplicationController
def index
@users = User.all
end
end
ルートの開始時にdevise_for:usersがあることを確認しました。
/conig/routes.rb
Rails.application.routes.draw do
devise_for :users
scope "/admin" do
resources :users
end
root :to => "visitors#index"
end
私はビューが問題ではないことを知っています。ロードしようとしているページにこのエラーが表示されます。
それ以外は他のすべてが正常に動作します。UsersControllerを別の方法で処理する必要がありますか?たとえば、Deviseコントローラーから継承する必要がありますか?
解決
scope
コントローラーを名前空間に配置することを前提としています(スコープを使用すると、次のようになります UsersController
ない Admin::UsersController
, および/adminディレクトリはありません)。あなたが使用したい場合 Admin
名前空間/ディレクトリ、次のようにルートを定義する必要があります:
namespace :admin do
resources :users
end
余談ですが、あなたのルートが何を指しているのかを見ることができます rake routes
.で実行してみてください scope
対 namespace
そして、あなたはそれが物事をどのように変えるかを見るでしょう。
所属していません StackOverflow