子文件夹中的Rails控制器ActionController :: RoutingError(未初始化的常量

时间:2017-01-11 02:34:15

标签: ruby-on-rails ruby

我在StackOverflow中看到了相关问题,但我仍然无法使其工作。

我正在使用控制器内的子文件夹制作API,但我不断收到此错误:

LoadError (Unable to autoload constant Api::Report::ReportController, expected ... 
/controllers/api/report/report_controller.rb to define it):

或者这个:

ActionController::RoutingError (uninitialized constant Api::Report::ReportController):

这是我的文件夹结构:

->controllers
    ->api
       ->report
         infected_controller.rb
         report_controller.rb


# inflected_controller.rb
module Api
  class Report::InfectedController < ReportController
    def infected
    end
  end
end

# report_controller.rb
module Api
  class ReportController < ApplicationController
    def index
    end
  end
end

我的routes.rb

Rails.application.routes.draw do
  apipie
  namespace :api do
    scope module: 'report' do
      get 'infected' => 'infected#infected'
      resources :report
    end
  end
end

2 个答案:

答案 0 :(得分:1)

module Api
  module Report # <============== missing module
    class ReportController < ApplicationController
      def index
      end
    end
  end
end

另外

module Api
  class Report::InfectedController < Report::ReportController
    def infected
    end
  end
end

答案 1 :(得分:0)

尝试以下代码

# report_controller.rb
module Api
  class Report::ReportController < ApplicationController
    def index
    end
  end
end