質問

管理者がユーザーアカウントを制御/変更できるように、管理者の下にユーザーリソースを追加しました。しかし、私は約エラーを取得しています 初期化されていない定数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

私はビューが問題ではないことを知っています。ロードしようとしているページにこのエラーが表示されます。

Rails Error Output

それ以外は他のすべてが正常に動作します。UsersControllerを別の方法で処理する必要がありますか?たとえば、Deviseコントローラーから継承する必要がありますか?

役に立ちましたか?

解決

scope コントローラーを名前空間に配置することを前提としています(スコープを使用すると、次のようになります UsersController ない Admin::UsersController, および/adminディレクトリはありません)。あなたが使用したい場合 Admin 名前空間/ディレクトリ、次のようにルートを定義する必要があります:

  namespace :admin do
    resources :users
  end

余談ですが、あなたのルートが何を指しているのかを見ることができます rake routes.で実行してみてください scopenamespace そして、あなたはそれが物事をどのように変えるかを見るでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top