Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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 Rails REST API-未初始化常量API错误_Ruby On Rails_Json_Api_Rest_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails Rails REST API-未初始化常量API错误

Ruby on rails Rails REST API-未初始化常量API错误,ruby-on-rails,json,api,rest,ruby-on-rails-4,Ruby On Rails,Json,Api,Rest,Ruby On Rails 4,我使用命令railsapinewmyapi创建了一个新项目。然后创建了一个用户控制器,并在routes.rb文件中添加了以下代码 namespace :api, defaults:{format:'json'} do namespace :v1 do resources :user end end user_controller.rb: module Api module V1 class UserController &

我使用命令
railsapinewmyapi
创建了一个新项目。然后创建了一个用户控制器,并在routes.rb文件中添加了以下代码

namespace :api, defaults:{format:'json'} do
      namespace :v1 do
        resources :user
      end
    end
user_controller.rb:

module Api
    module V1
        class UserController < ApplicationController
        def index

        end
        end
    end
end
当我试图从REST控制台或浏览器中点击URL——“localhost:3000/api/v1/user/”时,我得到了以下错误

**Routing Error : uninitialized constant Api**

如何修复错误

首先,如果您选择了错误的路线,请执行以下操作:

 scope module: :api, as: :api, format: 'json' do
    namespace :v1 do
      resources :users
    end
  end
关于控制器的下一步:

module Api
  module V1
    class UsersController < ApplicationController
      def index
        .....
      end
    end
  end
end
模块Api
模块V1
类UsersController
最后,您需要正确的文件夹结构,如:


您的控制器类名称应为
userscocontroller
而不是
UserController
。请尝试将其更改为
userscocontroller
请显示您的路由代码。。您在routes中添加了API吗?资源:用户应该是资源:用户(复数)路由代码:MyApi::Application.routes.draw do#优先级基于创建顺序:first created->highest priority.#用“耙道”查看所有路线的布局。名称空间:api,默认值:{格式:'json'}do名称空间:v1 do资源:用户端在控制器中是否需要删除模块api和模块v1?在routes文件和Usercontroller中添加了给定代码,然后将Usercontroller和appcontroller移到controllers/api/v1文件夹中。现在我发现路由错误未初始化常量Api::V1::UsersController,您需要重新启动服务器。是的,这是一个输入错误。但即使现在,我也得到了相同的errorclass Api::V1::UsersControllermodule Api module V1 class UsersController < ApplicationController def index ..... end end end end