类usercontroller的超类不匹配

问题描述 投票:0回答:1

我在rails 5中创建了API。

我收到类UsersController的错误超类不匹配。

我的控制器:

module Api
  module V1
    class UsersController < ApplicationController
      def index
        users = User.Order('created_at DESC')
        render json: {status:"SUCCESS", message:"Load Users", data:users}, status: :ok 
      end

      def create
        user = User.new(user_params) 
      end

      def user_params
        params.permit(:firstname, :lastname, :email, :age, :id)
      end
    end
  end
end

我的路线:

Rails.application.routes.draw do
  namespace :api do
    namespace :v1 do
      resources :users
    end
  end
end

这是我的文件夹结构:

enter image description here

我在控制台中遇到以下错误:

enter image description here

实际上,我刚开始使用ruby on rails。我试图找出问题,但找不到它。

ruby-on-rails
1个回答
0
投票

您需要从Main模块(Ruby中的“全局”命名空间)引用ApplicationController:

module Api
  module V1
    class UsersController < ::ApplicationController

::告诉Ruby从main而不是当前模块嵌套中解析常量,这是Api::V1

您还需要确保ApplicationController继承自ActionController::API

看到:

© www.soinside.com 2019 - 2024. All rights reserved.