未找到狂欢商务运输计算器

时间:2015-01-20 20:39:31

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

我正在尝试为我的安装添加送货方式(首次添加送货方式)。当我访问此表单(admin/shipping_methods/new)时,计算器下拉列表中没有可用的运费计算器。从文档中可以看出,Spree默认提供5个计算器,但没有一个可用。

我正在使用Spree 2-4-stable。我浏览了回购,当然,计算器就在那里。我还研究了控制器,看看在哪里建立计算器数组。控制器中的代码是:

...
@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 console是否来自不同的来源?我怎样才能从控制台中提取数据,而不是应用程序。没有错误,只是应用程序中的空数组。

这可以防止我添加送货方式,这会阻止我完成设置。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为这更像是一个黑客攻击而不是一个回答",但不管怎样,它都是一个解决方案。

我最终决定只通过克隆其中一个Spree默认值并重命名它来创建我自己的运费计算器。我按照creating a custom Shipping Calculator的文档进行操作。复制完类并重命名后,我通过所述的配置方法添加了它。

添加配置语句后,所有默认的送货计算器都开始显示了!好像要创建另一个bug,我的自定义计算器无处可寻。我决定删除添加我的计算器的配置行,但是保留了默认计算器工作的初始配置行。

所以,虽然我确定这是某种错误,但解决办法是在config/initializers/spree.rb

的底部添加以下行。
config = Rails.application.config

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

<强>更新

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

无论哪种方式,我希望那里的其他人能够对这个问题提供一些启示。