在Grape API中需要Helpers模块文件

时间:2016-01-31 05:55:59

标签: ruby module helpers grape-api

这是我的Grape API的结构。

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 个答案:

答案 0 :(得分:1)

Helpers模块中的命名空间WardenHelpers

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

而不是helpers Helpers::WardenHelpers

中使用application.rb