неопределенный метод `[]' для nil:NilClass

Я использую grape для создания своего Restful API, но когда я пытаюсь интегрировать его с Swagger через grape-swagger gem, он выдает

undefined method `[]' for nil:NilClass

когда я посещаю http://localhost:3000/swagger_doc URL

Вот мои версии драгоценных камней:

  • рельсы (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

Деталь для целей отладки: когда я удаляю блок resource из graduates.rb, URL-адрес swagger_doc выглядит нормально (но, конечно, без ресурсов).


person YigitOzkavci    schedule 15.06.2016    source источник


Ответы (1)


Для тех, кто столкнулся с этой проблемой, вот ответ:

Как сказано в таблице совместимости, grape (0.8.0) и grape-swagger (0.20.0) несовместимы друг с другом. Это решается, когда я использую grape (0.16.2).

person YigitOzkavci    schedule 15.06.2016