2015-01-20 81 views
1

我正在嘗試向我的安裝中添加運輸方法(首次添加運輸方式)。當我訪問此表單(admin/shipping_methods/new)時,計算器下拉菜單中沒有可用的計算器。從文檔中,Spree預設有5個計算器,但沒有可用的。我正在使用Spree 2-4-stable。我瀏覽了回購,並確信,計算器在那裏。我還研究了控制器以查看調用構建計算器數組的位置。控制器內的代碼是:Spree Commerce運算計算器未找到

... 
@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 

當然,我很困惑。軌道控制檯是否從不同的來源拉動?它如何從控制檯中提取數據,但不是應用程序。沒有錯誤,只是應用程序中的空數組。

這可以防止我添加運輸方法,從而阻止我完成我的設置。

有什麼想法?

回答

0

我會認爲這更多的是一個「答案」,但無論如何,這是一個解決方案。

我終於決定創建自己的運費計算器,只需克隆一個Spree默認值並重新命名即可。我按照creating a custom Shipping Calculator的文檔。一旦我複製了類並重命名後,我通過所述的配置方法添加了它。

添加config語句後,所有默認運輸計算器開始出現!好像要創建另一個bug,但是我的自定義計算器沒有找到可以找到的地方。我決定刪除添加我的計算器的配置行,但保留了默認計算器工作的初始配置行。

所以,雖然我相信這是某種類型的錯誤,解決辦法是在config/initializers/spree.rb

config = Rails.application.config 

重新啓動服務器和繁榮的底部添加以下行!計算器現在可供選擇。

UPDATE:

只是爲了測試,我刪除了該文件中的配置行和刪除了我定製的船舶計算器從目錄,看看它是否會再次突破航運計算器。奇怪的是,他們仍然工作。也許使用上面的方法加載配置在系統中保存了一個狀態,允許它繼續運行。

無論哪種方式,我希望在那裏的其他人可以提供一些問題。