首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用active_shipping创建包

用active_shipping创建包
EN

Stack Overflow用户
提问于 2014-11-10 10:21:41
回答 1查看 207关注 0票数 0

我使用active_shipping gem计算运输成本,我有一些problem.My包可以有几个相同的对象。对于这些,我使用PackageItem类,但是当我使用find_rates方法时,会出现这样的错误。

NoMethodError: undefined method 'inches' for #<ActiveMerchant::Shipping::PackageItem:0x007fec95f24610>

这就是我如何使用它的例子:

代码语言:javascript
复制
origin = Location.new(country: 'US', zip: '91801')
dest = Location.new(country: 'US', zip: '90001')
packages = PackageItem('test', 32, 18, 15, units: :imperial)
carrier = USPS.new(login: 'LOGIN')
carrier.find_rates(origin, dest, packages)

这是PackageItem的初始化程序:

代码语言:javascript
复制
def initialize(name, grams_or_ounces, value, quantity, options = {})
    @name = name

    imperial = (options[:units] == :imperial) ||
      (grams_or_ounces.respond_to?(:unit) && m.unit.to_sym == :imperial)

    @unit_system = imperial ? :imperial : :metric

    @weight = attribute_from_metric_or_imperial(grams_or_ounces, Mass, :grams, :ounces)

    @value = Package.cents_from(value)
    @quantity = quantity > 0 ? quantity : 1

    @sku = options[:sku]
    @hs_code = options[:hs_code]
    @options = options
  end

价值是物品的成本,这就是我所理解的。

如果使用USPS载体,则在此位置可能会出现错误:

代码语言:javascript
复制
def self.size_code_for(package)
    if package.inches(:max) <= 12
      'REGULAR'
    else
      'LARGE'
    end
  end

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-09 17:22:54

我认为您需要使用Package模块而不是PackageItem模块(它似乎没有数量,因此您必须复制Package对象以获得更高的数量)。

还请参阅PackageItem:(shipping/ActiveMerchant/Shipping/PackageItem)文档中的本说明。

这只是现在传送方法(标签创建)所必需的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26841479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档