【问题标题】:grape-swagger undefined method `[]' for nil:NilClass用于 nil:NilClass 的葡萄大摇大摆的未定义方法“[]”
【发布时间】:2016-06-15 09:51:01
【问题描述】:

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

undefined method `[]' for nil:NilClass

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

这是我的 gem 版本:

  • 导轨 (4.2.4)
  • 葡萄 (0.8.0)
  • 葡萄大摇大摆 (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

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

【问题讨论】:

    标签: ruby-on-rails swagger grape


    【解决方案1】:

    对于遇到此问题的任何人,这是答案:

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

    【讨论】:

      猜你喜欢
      • 2021-09-03
      • 1970-01-01
      • 2016-09-17
      • 2016-02-23
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多