wine-swagger undefined method` []'for nil:NilClass

时间:2016-06-15 09:51:02

标签: ruby-on-rails swagger grape

我正在使用grape构建我的restful API,但当我尝试通过grape-swagger gem将其与Swagger集成时,它会抛出

undefined method `[]' for nil:NilClass

当我访问http://localhost:3000/swagger_doc url

这是我的宝石版本:

  • rails(4.2.4)
  • grape(0.8.0)
  • grape-swagger(0.20.0)

这是我的目录结构&文件:

api/ api/base.rb api/graduates.rb

// base.rb
module API
    class Base < Grape::API
        mount API::Graduates
        add_swagger_documentation
    end
end

// graduates.rb
module API
    class Graduates < Grape::API
        resource :graduates do
            desc 'wow'
            get :all do
                Graduate.all
            end
        end
    end
end

在我的路线文件中,我只是安装了葡萄api基地。

Rails.application.routes.draw do
  mount API::Base, at: "/"
end

用于调试目的的详细信息:当我从resource删除graduates.rb块时,swagger_doc url似乎很好(当然,没有资源)。

1 个答案:

答案 0 :(得分:0)

对于遇到此问题的任何人,可以回答:

正如兼容性表所示,grape (0.8.0)grape-swagger (0.20.0)彼此不兼容。当我使用grape (0.16.2)时,这就解决了。