ActiveShipping和Grape(Rails) - 未初始化的常量API :: V1 :: Shippings :: ActiveShipping

时间:2015-04-28 09:56:13

标签: ruby-on-rails grape grape-api uninitialized-constant

我使用Grape在rails中创建API。现在我想使用Shopify的Active Shipping gem但是当我尝试在Grape中的custom_helper中使用它时,我收到uninitialized constant ActiveShipping错误消息。此外,我还收到以下消息:

Cannot render console with content type application/jsonAllowed content types: [#<Mime::Type:0x007f8bea21b4e8 @synonyms=["application/xhtml+xml"], @symbol=:html, @string="text/html">, #<Mime::Type:0x007f8bea21b038 @synonyms=[], @symbol=:text, @string="text/plain">, #<Mime::Type:0x007f8bec0fe950 @synonyms=[], @symbol=:url_encoded_form, @string="application/x-www-form-urlencoded">]

我的助手文件如下:

require 'active_shipping'
module API
    module V1
        module Helpers
            module ShippingHelpers
                extend Grape::API::Helpers

                def ups_tracking_info(tracking_number)
                    ups = ActiveShipping::UPS.new(login, password, key) #this is where it throws an error
                    ups.find_tracking_info(tracking_number)
                end
            end
        end
    end
end

我将它包含在我的葡萄收集文件中,如:

module API
  module V1
    class Shippings < Grape::API
        helpers API::V1::Helpers::ShippingHelpers 
       ...
        #some endpoint:
          ups_tracking_info(tracking_info)
       ...
    end
  end
end

为什么我会收到未初始化的常量错误消息?我确实需要我的帮助文件中的gem ..在我的config / application.rb文件中要求它也不起作用...

希望有人会有一个想法,这可以帮助我。在此先感谢!

注意我的所有葡萄文件都在app / api / api文件夹中,所以这不是问题..

1 个答案:

答案 0 :(得分:0)

原来documentation with the gem on github不正确。正确的信息是here。我不得不在班上include ActiveMerchant::Shipping并在代码中放弃使用ActiveMerchant :: Shipping。所以请改用UPS.new()或FedEx.new()等。