我使用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文件夹中,所以这不是问题..
答案 0 :(得分:0)
原来documentation with the gem on github不正确。正确的信息是here。我不得不在班上include ActiveMerchant::Shipping
并在代码中放弃使用ActiveMerchant :: Shipping。所以请改用UPS.new()或FedEx.new()等。