【问题标题】:Rails Controller Inheritance Routing ErrorRails 控制器继承路由错误
【发布时间】:2016-01-23 15:36:40
【问题描述】:

我正在尝试将命名空间定义为管理员,我的路由文件如下;

namespace :admin do
  root 'base#index'
  resources :boats
 end

所以我有管理文件夹,里面有base_controller.rb

class Admin::BaseController < ApplicationController
  before_action :logged_in_user, :auth_admin

  def index

  end

end

我创建了从 BaseController 继承的 cars_controller.rb;

class Admin::CarsController < BaseController

        def index
            @cars = Car.all
        end

    end 

所以,像这样我从控制台收到错误;

ActionController::RoutingError (uninitialized constant BaseController):
  app/controllers/admin/cars_controller.rb:1:in `<top (required)>'

如果我将 BaseController 改为 ApplicationController,则它可以正常工作。 Bur 我不明白为什么会出现这样的错误。

【问题讨论】:

  • 看起来很简单;你不在模块中,所以没有BaseController

标签: ruby-on-rails inheritance controller routing


【解决方案1】:

ActionController::RoutingError(未初始化的常量 基本控制器):

你的BaseController继承自Admin,所以你需要写Admin::BaseController而不是BaseController

class Admin::CarsController < Admin::BaseController

【讨论】:

    猜你喜欢
    • 2015-09-27
    • 1970-01-01
    • 2014-06-14
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多