Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 命名空间管理控制器时类的超类不匹配_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 命名空间管理控制器时类的超类不匹配

Ruby on rails 命名空间管理控制器时类的超类不匹配,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,嘿,我正在尝试命名一组我只希望管理员能够访问的控制器的名称空间。例如,我想要像admin/products或admin/categories这样的路由,但是当我调用位于controllers/admin文件夹中的任何控制器时,我会收到以下错误消息 superclass mismatch for class CategoriesController 如果我马上重启服务器,我会得到这个 Unable to autoload constant Admin::CategoriesController

嘿,我正在尝试命名一组我只希望管理员能够访问的控制器的名称空间。例如,我想要像admin/products或admin/categories这样的路由,但是当我调用位于controllers/admin文件夹中的任何控制器时,我会收到以下错误消息

superclass mismatch for class CategoriesController
如果我马上重启服务器,我会得到这个

Unable to autoload constant Admin::CategoriesController

这是我的路线

Rails.application.routes.draw do
  root 'pages#home'

  devise_for :admins
  namespace :admin do
    resources :categories, :except => [:new, :show]
    resources :products
  end

  resources :products
  resources :carts, :only => [:show]
  resources :line_items, :only => [:create, :destroy]

  # Shop controller
  get 'shop/index    

  # Admin controller
  get 'admin/index'
这是我的分类控制器

class CategoriesController < ApplicationController
    before_filter :authenticate_admin!

    def index
        @categories = Category.all
        @category = Category.new
    end

    def create
        category = Category.new(categories_params)
        if category.save
        flash[:notice] = "You have added a new category"
        redirect_to categories_path
    else
        flash[:error] = "An error occured"
        render "index" 
    end
    end

  def edit
    @category = Category.find(params[:id])
  end

  def update
    @category = Category.find(params[:id])
    if @category.update(categories_params)
      flash[:notice] = "Succesfully updated #{@category[:name].titleize}"
      redirect_to categories_path
    else
      flash[:error] = "An error occured trying to update #{@category[:name].titleize}"
      render "edit"
    end
  end

  def destroy
    @category = Category.find(params[:id])
    if @category.destroy
      flash[:notice] = "You succesfully removed #{@category.name}"      
    else 
      flash[:error] = "An error occured trying to remove #{@category.name}"
    end
    redirect_to categories_path
  end

  private

    def categories_params
            params.require(:category).permit(:name)
        end

end
class CategoriesController

这已经困扰了我一段时间了,如果您忘记了
名称空间
控制器类:

class Admin::CategoriesController < ApplicationController
class Admin::CategoriesController

这就是为什么当Rails正在寻找名称空间的类时,您会收到
无法自动加载常量Admin::CategoriesController
错误,而您得到的是
CategoriesController

您忘记了
名称空间
控制器类:

class Admin::CategoriesController < ApplicationController
class Admin::CategoriesController

这就是为什么您会收到
无法自动加载常量Admin::CategoriesController
错误,因为Rails正在查找名称空间类
Admin::CategoriesController
,您得到的是
CategoriesController

很高兴提供帮助。超时结束后,请接受答案:)是的,我很乐意帮忙。请在超时结束后接受答案:)是的,将执行fsafaf