3

我很乐意帮助解决我遇到的令人沮丧的问题。第一次设置 Spree,但我已经在 Rails 中开发了 3 年,所以我熟悉它的工作原理。

几乎是默认设置。但是,当我尝试结帐时,单击地址页面上的“保存并继续”,标题中出现错误。我可以从错误来自的订单模型中看到: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

还不容易弄清楚这些条件中的哪一个返回真实。如果它是我的应用程序,我会添加一个调试器语句并以这种方式检查。任何人都可以就如何进一步排除故障或尝试什么给我任何建议。

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

谢谢!

4

2 回答 2

6

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

bundle show spree_core

编辑代码,重新启动 Rails 服务器,然后像往常一样进行调试。别忘了改回来!

如果你想少一点侵入性,你可以启动一个 Rails 控制台。获取您正在使用的订单(可能是 Spree::Order.last)并弄清楚发生了什么。

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

您可能选择的国家/地区要么不在定义区域内,要么在没有运输方式的定义区域内。Spree 不知道运送该物品的成本是多少(或者它是否可以运送到那里),因此它会触发您看到的错误。

希望有帮助。祝你好运开始狂欢!

于 2013-08-16T15:56:47.477 回答
0

我最终从头开始了一个新的应用程序(因为我对事情并不太了解),它现在运行良好。我记得我在添加示例数据时遇到了一个错误,我认为我已经解决了这个问题,但也许这是它背后的原因。

于 2013-08-17T16:59:04.760 回答