我很想帮助解决我遇到的令人沮丧的问题。第一次设置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。
谢谢!
答案 0 :(得分:3)
有几种方法可以解决这个问题。如果要添加调试语句,可以打开gem:
bundle show spree_core
编辑代码,重新启动rails服务器,并像平常一样进行调试。不要忘记改回来!
如果你想要少一些入侵,你可以启动一个rails控制台。抓住你正在使用的订单(可能是Spree :: Order.last)并弄清楚发生了什么。
您可能遇到运输方法和区域问题。 Spree :: Zone列出了一组国家(例如,美国,加拿大和墨西哥可以定义您的北美区域)。 Spree :: ShippingMethod定义了将物品运送到特定区域的成本。这些设置都可以在管理界面中定义。
您可能选择的国家/地区不在定义的区域中,或者位于没有送货方式的已定义区域中。 Spree不知道运送物品的成本是多少(或者如果它可以运到那里),所以它会触发您所看到的错误。
希望有所帮助。祝福Spree好运!#/ p>
答案 1 :(得分:0)
我最终从头开始创建一个新的应用程序(因为我对事情并不是太过分了)而且现在工作正常。我记得我在添加样本数据时遇到了错误,我认为我已经解决了这个问题,但也许这就是它背后的原因。