0

Я построения API с:Невозможно автозагрузку сериализатором с использованием виноградного Gem

  • Рубине 2,2
  • Rails 4.2.6
  • винограда самоцвета 0.16.2
  • active_model_serializers-самоцвет 0,10. 2
  • винограда-active_model_serializers-камень (1.4 мастера)

Моя JSON-Ser ializers работать хорошо, пока я пытаюсь ввести API Versioning, как описано здесь: https://github.com/ruby-grape/grape-active_model_serializers

Неверсированные сериализатору:

class SignupSerializer < ActiveModel::Serializer 
    attributes :id, :comments, :pending 
end 

Версированные сериализатору:

module Mobile 
    module V1 
    class SignupSerializer < ActiveModel::Serializer 
     attributes :id, :comments, :pending 
    end 
    end 
end 

Сообщение об ошибке:

LoadError (Не удается авторизовать ДОА постоянная SignupSerializer, как ожидается /Users/username/GitHub/AppName/app/serializers/mobile/v1/signup_serializer.rb определить его): приложение/API/мобильный/logger.rb: 16: в block in call' app/api/mobile/logger.rb:15:in вызове»

Организация

API:

enter image description here

base.rb:

require 'grape-swagger' 

module Mobile 
    class Dispatch < Grape::API 
    mount Mobile::V1::Root 
    mount Mobile::V2::Root 
    format :json 
    route :any, '*path' do 
     Rack::Response.new({message: 'Not found'}.to_json, 404).finish 
    end 
    add_swagger_documentation 
    end 

    Base = Rack::Builder.new do 
    use Mobile::Logger 
    run Mobile::Dispatch 
    end 
end 

v1/root.rb:

module Mobile 
    module V1 
    class Root < Dispatch 
     format :json 
     formatter :json, Grape::Formatter::ActiveModelSerializers 
     version 'v1' 
     default_error_formatter :json 
     content_type :json, 'application/json' 
     use ::WineBouncer::OAuth2 

     rescue_from :all do |e| 
     eclass = e.class.to_s 
     message = "OAuth error: #{e.to_s}" if eclass.match('WineBouncer::Errors') 
     status = case 
     when eclass.match('OAuthUnauthorizedError') 
      401 
     when eclass.match('OAuthForbiddenError') 
      403 
     when eclass.match('RecordNotFound'), e.message.match(/unable to find/i).present? 
      404 
     else 
      (e.respond_to? :status) && e.status || 500 
     end 
     opts = { error: "#{message || e.message}" } 
     opts[:trace] = e.backtrace[0,10] unless Rails.env.production? 
     Rack::Response.new(opts.to_json, status, { 
      'Content-Type' => "application/json", 
      'Access-Control-Allow-Origin' => '*', 
      'Access-Control-Request-Method' => '*', 
     }).finish 
     end 

     mount Mobile::V1::Me 
     mount Mobile::V1::Events 
     mount Mobile::V1::Signups 

     route :any, '*path' do 
     raise StandardError, 'Unable to find endpoint' 
     end 
    end 
    end 
end 

апи/v1/signup.rb:

module Mobile 
    module V1 
    class Signups < Mobile::V1::Root 
     include Mobile::V1::Defaults 

     resource :signups, desc: 'Operations about the signups' do 

     desc "Returns list of signups" 
     oauth2 # This endpoint requires authentication 

     get '/' do 
      Signup.where(pending: false) 
     end 

     end 

    end 

    end 
end 

Любые идеи?

ответ

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

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