找不到 Spree Commerce 运费计算器
Spree Commerce Shipping Calculators Not Found
我正在尝试将运输方式添加到我的安装中(第一次添加运输方式)。当我访问此表单 (admin/shipping_methods/new
) 时,“计算器”下拉列表下没有可用的运费计算器。根据文档,Spree 默认附带 5 个计算器,但有 none 个可用。
我正在使用 Spree 2-4-stable
。我浏览了 repo,果然,计算器就在那里。我还研究了控制器,以了解构建计算器数组的调用位置。控制器内的代码是:
...
@calculators = ShippingMethod.calculators.sort_by(&:name)
...
这个 returns 是一个空数组,因此没有计算器出现。
我曾尝试自己在其他领域列出计算器列表,但没有成功。
# Returns an empty array as well
@calculators = Spree::ShippingMethod.calculators
奇怪的是,如果我 运行 rails console
在我的目录中并且一旦初始化 运行
# Returns the 5 default calculators
calculators = Spree::ShippingMethod.calculators
自然是一头雾水。 rails 控制台是否来自不同的来源?我怎么可以从控制台而不是应用程序中提取数据。没有错误,只是应用程序中的一个空数组。
这使我无法添加送货方式,从而使我无法完成设置。
有什么想法吗?
与 "answer" 相比,我认为这更像是一种黑客攻击,但无论哪种方式,它都是一个解决方案。
我最终决定通过简单地克隆 Spree 默认设置之一并重命名来创建我自己的运费计算器。我遵循了 creating a custom Shipping Calculator 的文档。复制 class 并重命名后,我通过指定的配置方法添加了它。
添加配置语句后,所有默认运费计算器开始出现!好像要制造另一个错误,但是找不到我的自定义计算器。我决定删除添加我的计算器的配置行,但保留了使默认计算器正常工作的初始配置行。
所以,虽然我确定这是某种错误,但解决方案是在 config/initializers/spree.rb
的底部添加以下行
config = Rails.application.config
重新启动服务器并繁荣!现在可供选择的计算器。
更新:
为了测试,我从文件中删除了配置行,并从目录中删除了我的自定义运费计算器,以查看它是否会再次破坏运费计算器。奇怪的是,它们仍然有效。也许使用上述方法加载配置会在系统中保存一个状态,使其继续运行。
无论如何,我希望其他人可以提供一些关于这个问题的线索。
我正在尝试将运输方式添加到我的安装中(第一次添加运输方式)。当我访问此表单 (admin/shipping_methods/new
) 时,“计算器”下拉列表下没有可用的运费计算器。根据文档,Spree 默认附带 5 个计算器,但有 none 个可用。
我正在使用 Spree 2-4-stable
。我浏览了 repo,果然,计算器就在那里。我还研究了控制器,以了解构建计算器数组的调用位置。控制器内的代码是:
...
@calculators = ShippingMethod.calculators.sort_by(&:name)
...
这个 returns 是一个空数组,因此没有计算器出现。
我曾尝试自己在其他领域列出计算器列表,但没有成功。
# Returns an empty array as well
@calculators = Spree::ShippingMethod.calculators
奇怪的是,如果我 运行 rails console
在我的目录中并且一旦初始化 运行
# Returns the 5 default calculators
calculators = Spree::ShippingMethod.calculators
自然是一头雾水。 rails 控制台是否来自不同的来源?我怎么可以从控制台而不是应用程序中提取数据。没有错误,只是应用程序中的一个空数组。
这使我无法添加送货方式,从而使我无法完成设置。
有什么想法吗?
与 "answer" 相比,我认为这更像是一种黑客攻击,但无论哪种方式,它都是一个解决方案。
我最终决定通过简单地克隆 Spree 默认设置之一并重命名来创建我自己的运费计算器。我遵循了 creating a custom Shipping Calculator 的文档。复制 class 并重命名后,我通过指定的配置方法添加了它。
添加配置语句后,所有默认运费计算器开始出现!好像要制造另一个错误,但是找不到我的自定义计算器。我决定删除添加我的计算器的配置行,但保留了使默认计算器正常工作的初始配置行。
所以,虽然我确定这是某种错误,但解决方案是在 config/initializers/spree.rb
config = Rails.application.config
重新启动服务器并繁荣!现在可供选择的计算器。
更新:
为了测试,我从文件中删除了配置行,并从目录中删除了我的自定义运费计算器,以查看它是否会再次破坏运费计算器。奇怪的是,它们仍然有效。也许使用上述方法加载配置会在系统中保存一个状态,使其继续运行。
无论如何,我希望其他人可以提供一些关于这个问题的线索。