Ruby on Rails生根错误

时间:2014-11-25 08:12:17

标签: ruby-on-rails routing

我试图创建简单的Ruby on Rails REST API。

应用程序/控制器/ API / VI / product_controller.rb

module Api
    module V1
        class ProductController < ApplicationController::API
            def index
                render json: {message: 'Welcome!'}
            end
        end
    end
end

配置/ routes.rb中

Rails.application.routes.draw do
  namespace :api do
    namespace :v1 do
      get '/product', to: 'product_controller#index', as: 'product'
    end
  end
end

当我在localhost上运行项目时,出现uninitialized constant Api::V1::ApplicationController路由错误。任何人都可以像我一样帮助这样的Ruby on Rails新手吗?

3 个答案:

答案 0 :(得分:1)

你只需要在api中创建一个名为api的控制器内的文件夹和一个v1文件夹。 您应该在v1文件夹中提供所有控制器。

在你的app / controllers / api / v1 / product_controller.rb

class Api::V1::ProductController < ApplicationController
    def index
      render json: {message: 'Welcome!'}
    end
end

在您的路线中:

Rails.application.routes.draw do
  namespace :api do
    namespace :v1 do
      get '/product', to: 'product_controller#index', as: 'product'
    end
  end
end

答案 1 :(得分:0)

你嵌套了路线,所以它应该是'/ api / v1 / product`

如果从控制台运行rake routes,您将获得所有可用路由的列表。

有关路由和嵌套路由的更多信息,请查看rails guides

答案 2 :(得分:0)

更改此设置并尝试:

module Api
    module V1
      class ProductController < ApplicationController
            def index
                render json: {message: 'Welcome!'}
            end
        end
    end
end