Question

J'ai ajouté la ressource utilisateurs sous admin pour permettre à l'administrateur de contrôler/modifier les comptes d'utilisateurs.Mais j'obtiens une erreur concernant constante non initialisée UsersController.Les comptes d'utilisateurs sont gérés par appareil.Actuellement, je souhaite simplement créer la page d'index pour répertorier chaque utilisateur.Voici les parties pertinentes :

/app/controllers/admin/users_controller.rb

class Admin::UsersController < ApplicationController

  def index
    @users = User.all
  end

end

Je me suis assuré d'avoir mon devise_for :users au début de mes itinéraires.

/conig/routes.rb

Rails.application.routes.draw do
  devise_for :users

  scope "/admin" do
    resources :users
  end

  root :to => "visitors#index"
end

Je sais que la vue n'est pas le problème.La page que j'essaie de charger affiche cette erreur.

Rails Error Output

A part ça, tout le reste fonctionne bien.Dois-je gérer le UsersController différemment ?Par exemple, dois-je hériter d’un contrôleur Devise ?

Était-ce utile?

La solution

scope suppose que vous allez placer vos contrôleurs dans un espace de noms (donc avec la portée, ce serait simplement UsersController pas Admin::UsersController, et pas de répertoire /admin).Si vous souhaitez utiliser un Admin espace de noms/répertoire, vous devez définir votre itinéraire comme ceci :

  namespace :admin do
    resources :users
  end

En passant, vous pouvez voir vers quoi pointent vos itinéraires avec rake routes.Essayez de l'exécuter avec scope contre namespace et vous verrez comment cela change les choses.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top