2016-01-31 10 views
0

Это структура моего API-интерфейса Grape.Требовать файл модуля помощников в API Grape

app 
| /api 
    | /v1 
    | application.rb 
    /helpers 
    | warden_helpers.rb 
    /models 
    | user.rb 

Это мой файл warden_helpers.rb;

require 'grape' 
require 'warden' 

module WardenHelpers 
    extend Grape::API::Helpers 
    # Helpers go here 
end 

И это, как я пытаюсь требовать от них в application.rb;

require 'grape' 

# Load files from folders 
Dir["#{File.dirname(__FILE__)}/app/models/**/*.rb"].each { |f| require f } 
Dir["#{File.dirname(__FILE__)}/app/api/**/*.rb"].each { |f| require f } 
Dir["#{File.dirname(__FILE__)}/app/helpers/**/*.rb"].each { |f| require f } 

module API 
    class Root < Grape::API 
    helpers WardenHelpers 
    end 
end 

Если я включаю хелперов как блок в application.rb или поместить модуль в том же файле - все работает отлично. Но этот подход выдает ошибку: in '<class:Root>': uninitialized constant API::Root::WardenHelpers (NameError)

ответ

1

пространства имен WardenHelpers в модуле Помощники

module Helpers 
    module WardenHelpers 
    extend Grape::API::Helpers 
    # Helpers go here 
    end 
end 

чем использовать helpers Helpers::WardenHelpers в application.rb

 Смежные вопросы

  • Нет связанных вопросов^_^