2014-11-25 3 views
0

Im пытается создать простой Ruby on Rails API REST.Ошибка укоренения Ruby on Rails

приложение/контроллеры/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 

При запуске проекта на локальном хосте, я получаю сообщение об ошибке uninitialized constant Api::V1::ApplicationController маршрутизации. Может ли кто-нибудь помочь таким новичкам Ruby on Rails, как я?

+0

изменения этой линии и один раз попробовать: 'класс ProductController Choco

+0

Ошибка: 'uninitialized constant ApiController' –

+0

Откуда появляется' ApplicationController :: API'? –

ответ

0

вы вложенный маршрут, поэтому он должен быть «/ API/v1/product`

, если вы запустите rake routes из консоли, вы получите список всех доступных маршрутов.

для получения дополнительной информации о маршрутизации и вложенных маршрутах, посмотреть на rails guides

+0

'get '/ product', to: 'product # index', as: 'product''? Еще одна ошибка с этой строкой кода ... –

+0

'rake routes' output:' api_v1_product GET /api/v1/product(.:format) api/v1/product # index' –

0

изменений этого и попробовать:

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

'uninitialized constant Api :: V1: : ApiController' –

+0

@JacobJones Я отредактировал мой ответ, пожалуйста, проверьте его – Choco

+0

'неинициализированным постоянная ApplicationController' –

1

вам просто нужно создать папку внутри контроллеры под названием апи и папка v1 внутри апи. Вы должны предоставить все контроллеры внутри папки v1.

В вашем приложение/контроллеры/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