我正在尝试在我的安装中添加一个托运方法(第一次添加一个传送方法)。当我访问此表单(admin/shipping_methods/new)时,计算器下拉式下没有可用的托运计算器。从文档中,狂欢节默认附带5个计算器,但没有可用的。
我使用的是疯狂的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控制台是否从不同的源提取?如何从控制台中提取数据,而不能从应用程序中提取数据。没有错误,只是应用程序内部的一个空数组。
这使我无法添加传送方法,从而无法完成我的设置。
有什么想法吗?
发布于 2015-01-21 03:24:54
我认为这更像是一个黑客,而不是一个“答案”,但不管怎样,这都是一个解决方案。
最后,我决定只创建我自己的航运计算器,只需简单地克隆任意一个缺省值并重新命名它。我跟踪了创建自定义托运计算器的文档。一旦我复制并重命名了这个类,我就通过所述的config方法添加它。
在添加config语句后,所有默认的发货计算器都开始出现!就好像要创建另一个bug一样,但是我的自定义计算器却找不到。我决定删除添加计算器的配置行,但保留了初始配置行,使默认计算器正常工作。
所以,虽然我确信这是某种错误,但解决方案是在config/initializers/spree.rb的底部添加下面的一行
config = Rails.application.config重新启动服务器然后砰!计算器现在可供选择。
更新:
为了进行测试,我从文件中删除了配置行,并从目录中删除了我的自定义航运计算器,以查看它是否会再次破坏航运计算器。奇怪的是,它们还能工作。也许使用上面的方法加载配置,在系统中保存了一个状态,允许它继续工作。
不管怎样,我希望其他人能对这一问题提供一些启示。
https://stackoverflow.com/questions/28054729
复制相似问题