簡體   English   中英

在Spree Commerce gem上創建新計算器時出錯

[英]Error when create a new Calculator on Spree Commerce gem

我正在學習Rails,並且喜歡通過練習嘗試創建真實的東西來學習。

我在嘗試創建一個新的計算器以在瘋狂商務的運輸領域中使用時遇到一些問題。

遵循本文檔教程。

http://guides.spreecommerce.org/developer/calculators.html#creating-a-new-calculator

遵循本教程,我在此目錄中創建了此類。

app/models/spree/calculator/shipping/my_own_calculator.rb

我的課是這樣

class MyOwnCalculator < Spree::ShippingCalculator
  def self.description
    Spree.t(:shipping_flat_rate_per_order)
  end

  def compute_package(package)
    self.preferred_amount
  end

  def available?(object)
    object.currency == "USD"
  end
end

和我的文件config/initializers/spree.rb

# Configure Spree Preferences
#
# Note: Initializing preferences available within the Admin will overwrite any changes that were made through the user interface when you restart.
#       If you would like users to be able to update a setting with the Admin it should NOT be set here.
#
# Note: If a preference is set here it will be stored within the cache & database upon initialization.
#       Just removing an entry from this initializer will not make the preference value go away.
#       Instead you must either set a new value or remove entry, clear cache, and remove database entry.
#
# In order to initialize a setting do:
# config.setting_name = 'new value'
Spree.config do |config|
  # Example:
  # Uncomment to stop tracking inventory levels in the application
  # config.track_inventory_levels = false
end

Spree.user_class = "Spree::User"

config = Rails.application.config
config.spree.calculators.shipping_methods << Spree::Calculator::Shipping::MyOwnCalculator

錯誤是這樣的:

Unable to autoload constant Spree::Calculator::Shipping::MyOwnCalculator, expected /home/davi/dev/attsalaoruby/app/models/spree/calculator/shipping/my_own_calculator.rb to define it (LoadError)

我的堆棧跟蹤就是這樣

/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:512:in `load_missing_constant': Unable to autoload constant Spree::Calculator::Shipping::MyOwnCalculator, expected /home/davi/dev/attsalaoruby/app/models/spree/calculator/shipping/my_own_calculator.rb to define it (LoadError)
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:203:in `const_missing'
    from /home/davi/dev/attsalaoruby/config/initializers/spree.rb:21:in `<top (required)>'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `block in load'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/railties-5.0.1/lib/rails/engine.rb:648:in `block in load_config_initializer'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/activesupport-5.0.1/lib/active_support/notifications.rb:166:in `instrument'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/railties-5.0.1/lib/rails/engine.rb:647:in `load_config_initializer'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/railties-5.0.1/lib/rails/engine.rb:612:in `block (2 levels) in <class:Engine>'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/railties-5.0.1/lib/rails/engine.rb:611:in `each'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/railties-5.0.1/lib/rails/engine.rb:611:in `block in <class:Engine>'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/railties-5.0.1/lib/rails/initializable.rb:30:in `instance_exec'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/railties-5.0.1/lib/rails/initializable.rb:30:in `run'
    from /home/davi/.rvm/gems/ruby-2.3.0@5.0.0.1/gems/railties-5.0.1/lib/rails/initializable.rb:55:in `block in run_initializers'
    from /home/davi/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:228:in `block in tsort_each'
    from /home/davi/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
....

您是否在模塊內部這樣定義了您的類: module Spree module Calculator::Shipping class MyOwnCalculator < Spree::ShippingCalculator ... end end end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM