【问题标题】:Spree Commerce Shipping Calculators Not FoundSpree Commerce Shipping Calculators 未找到
【发布时间】:2015-03-19 05:38:46
【问题描述】:

我正在尝试在我的安装中添加运输方式(第一次添加运输方式)。当我访问此表格 (admin/shipping_methods/new) 时,“计算器”下拉菜单下没有可用的运费计算器。根据文档,Spree 默认附带 5 个计算器,但没有可用的。

我正在使用 Spree 2-4-stable。我浏览了 repo,果然,计算器就在那里。我还研究了控制器,看看在哪里调用来构建计算器数组。控制器内的代码是:

...
@calculators = ShippingMethod.calculators.sort_by(&:name)
...

这会返回一个空数组,因此没有显示计算器。

我曾尝试自己在其他领域提取计算器列表,但没有成功。

# Returns an empty array as well
@calculators = Spree::ShippingMethod.calculators

奇怪的是,如果我在我的目录中运行 rails console 并且一旦初始化运行

# Returns the 5 default calculators
calculators = Spree::ShippingMethod.calculators

当然,我很困惑。 Rails 控制台是否从其他来源拉取?我如何从控制台中提取数据,而不是从应用程序中提取数据。没有错误,只是应用程序中的一个空数组。

这会阻止我添加送货方式,从而阻止我完成设置。

有什么想法吗?

【问题讨论】:

    标签: ruby ruby-on-rails-4 spree rails-console


    【解决方案1】:

    我认为这更像是一种技巧,而不是“答案”,但无论哪种方式,它都是一种解决方案。

    我最终决定通过简单地克隆 Spree 默认值之一并重命名它来创建自己的运费计算器。我遵循了creating a custom Shipping Calculator 的文档。一旦我复制了类并重命名,我就通过所述的配置方法添加了它。

    添加配置语句后,所有默认的运费计算器开始出现!好像要创建另一个错误,但是找不到我的自定义计算器。我决定删除添加我的计算器的配置行,但留下了保持默认计算器工作的初始配置行。

    所以,虽然我确信这是某种错误,但解决方案是在 config/initializers/spree.rb 的底部添加以下行

    config = Rails.application.config
    

    重新启动服务器并繁荣!计算器现在可供选择。

    更新:

    只是为了测试,我从文件中删除了配置行,并从目录中删除了我的自定义运费计算器,看看它是否会再次破坏运费计算器。奇怪的是,它们仍然有效。也许使用上述方法加载配置会在系统中保存一个状态,使其继续运行。

    不管怎样,我希望其他人可以提供一些关于这个问题的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多