2015-07-04 5 views
0

Я получаю error- сообщения от применения: неопределенный локальных переменного или метода api' for main:Object (NameError), /app/controllers/api/base_controller.rb:1:in 'пространства имен ROR ошибка

routes.rb

namespace :api, defaults: { format: "json" } do 
    devise_for :users 
    resources :items 
end 

моих папки (приложение/контроллеры/API/элементы) В папка апи первый один base_contoller whhich имеет следующие:

base_Controller.rb

class Api::BaseController < ApplicationController 

Пожалуйста, помогите решить. Я попытался сменить api на Api в папке маршрутов, тогда он дает ошибку, говоря, что «это имя не подходит».

ответ

0

Не могли бы вы попробовать следующий вариант?

module Api 
    class BaseController < ApplicationController 
    # code here 
    end 
end 

Он должен работать с namespace :api etc... от вашего routes.rb

Я думаю, что версия с классом Api::BaseController не работает, потому что это Qualified Constant по official guide about constants lookup in rails и имеет другой алгоритм разрешения. Было бы полезно проверить указанную ссылку