我很乐意帮助解决我遇到的令人沮丧的问题。第一次设置 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。
谢谢!
最佳答案
有几种方法可以解决这个问题。如果你想添加调试语句,你可以打开 gem:
bundle show spree_core
编辑代码,重新启动 Rails 服务器,然后像往常一样进行调试。别忘了把它改回来!
如果您想减少侵入性,可以启动 Rails 控制台。获取您正在处理的订单(可能是 Spree::Order.last)并弄清楚发生了什么。
您可能遇到了运输方式和区域方面的问题。 Spree::Zone 列出一组国家(例如,美国、加拿大和墨西哥可以定义您的北美区域)。 Spree::ShippingMethod 定义将某物运送到特定区域的成本。这些设置都可以在管理界面中定义。
您可能选择了一个不在定义区域中的国家/地区,或者在没有运输方式的定义区域中。 Spree 不知道运送元素的费用(或者是否可以运送到那里),因此它会触发您看到的错误。
希望对您有所帮助。祝 Spree 启动和运行一切顺利!
关于ruby-on-rails - 结帐时出现 Spree Commerce 错误 : "We are unable to ship the selected items to your shipping address.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18277367/