2013-08-16 32 views
2

我很想帮助解决我遇到的令人沮丧的问题。第一次设置Spree,但我在Rails中开发了3年,所以我很熟悉它的工作原理。Spree Commerce在结帐时出错:“我们无法将所选商品发送到您的送货地址。”

相当多的默认设置。但是,当我试图结帐时,点击地址页面上的“保存并继续”,我会在标题中看到错误。我可以从那里错误是来自顺序模型中看到:https://github.com/spree/spree/blob/2-0-stable/core/app/models/spree/order.rb

def ensure_available_shipping_rates 
    if shipments.empty? || shipments.any? { |shipment| shipment.shipping_rates.blank? } 
    errors.add(:base, Spree.t(:items_cannot_be_shipped)) and return false 
    end 
end 

有没有容易能弄清楚其中的那些条件,返回true。如果它是我的应用程序,我只需添加一个调试器语句并以这种方式检查事情。任何人都可以给我任何关于如何排除故障或尝试尝试的建议。

我在Rails 3.2.14,Spree 2-0-stable。

谢谢!

回答

3

有几种方法可以解决这个问题。如果要添加调试语句,你可以打开宝石:

bundle show spree_core 

编辑的代码,重新启动服务器导轨和调试,你通常会。不要忘记把它改回来!

如果你想要有一点侵入性,你可以启动一个轨道控制台。抓住你正在使用的订单(可能是Spree :: Order.last),并找出发生了什么。

您可能会遇到运输方式和区域问题。 Spree :: Zone列出了一组国家(例如,美国,加拿大和墨西哥可以定义您的北美区域)。 Spree :: ShippingMethod定义将某物运送到特定区域需要多少成本。这些设置都可以在管理界面中定义。

您可能选择了一个不在定义区域中的国家,或者位于没有装运方法的定义区域中。 Spree不知道运送物品需要多少费用(或者如果可以运送到那里),所以它会触发你所看到的错误。

希望有所帮助。祝你好运让疯狂起来吧!

0

我最终从头开始一个新的应用程序(因为我没有太多的东西),它现在工作正常。我记得我在添加样本数据时遇到了一个错误,我认为我已经解决了这个问题,但也许这是它的后面。

相关问题