Frage

Ich habe die Benutzerressource unter „Admin“ hinzugefügt, damit der Administrator Benutzerkonten steuern/ändern kann.Aber ich erhalte eine Fehlermeldung nicht initialisierte Konstante UsersController.Benutzerkonten werden vom Gerät verwaltet.Derzeit möchte ich nur die Indexseite erstellen, um jeden Benutzer aufzulisten.Hier sind die relevanten Teile:

/app/controllers/admin/users_controller.rb

class Admin::UsersController < ApplicationController

  def index
    @users = User.all
  end

end

Ich habe dafür gesorgt, dass mein devise_for :users am Anfang meiner Routen steht.

/conig/routes.rb

Rails.application.routes.draw do
  devise_for :users

  scope "/admin" do
    resources :users
  end

  root :to => "visitors#index"
end

Ich weiß, dass die Aussicht nicht das Problem ist.Die Seite, die ich laden möchte, zeigt diesen Fehler an.

Rails Error Output

Ansonsten funktioniert alles andere gut.Muss ich den UsersController anders behandeln lassen?Muss ich beispielsweise von einem Devise-Controller erben?

War es hilfreich?

Lösung

scope geht davon aus, dass Sie Ihre Controller in einem Namespace unterbringen (also mit Gültigkeitsbereich wäre es einfach so). UsersController nicht Admin::UsersController, und kein /admin-Verzeichnis).Wenn Sie eine verwenden möchten Admin Namespace/Verzeichnis, Sie müssen Ihre Route wie folgt definieren:

  namespace :admin do
    resources :users
  end

Abgesehen davon können Sie sehen, worauf Ihre Routen hinweisen rake routes.Versuchen Sie es mit auszuführen scope vs namespace und Sie werden sehen, wie es die Dinge verändert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top