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