Ich lerne Schienen und ich mag es zu lernen, indem ich versuche, etwas wirklich zu schaffen.Fehler beim Erstellen eines neuen Rechners auf Spree Commerce Juwel
Ich habe ein paar Probleme beim Versuch, einen neuen Taschenrechner zu erstellen, der im Versandbereich von Spreecommerce verwendet werden soll.
Nach dieser Dokumentation Tutorial.
http://guides.spreecommerce.org/developer/calculators.html#creating-a-new-calculator
Tutorial Nach i in diesem Verzeichnis dieser Klasse erstellt.
app/models/spree/calculator/shipping/my_own_calculator.rb
Meine Klasse ist auf diese Weise
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
und meine Datei 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
der Fehler ist dies:
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)
und mein Stack-Trace ist auf diese Weise
/.rvm/gems/[email protected]/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/[email protected]/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/[email protected]/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
from /home/davi/.rvm/gems/[email protected]/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `block in load'
from /home/davi/.rvm/gems/[email protected]/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
from /home/davi/.rvm/gems/[email protected]/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:287:in `load'
from /home/davi/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/engine.rb:648:in `block in load_config_initializer'
from /home/davi/.rvm/gems/[email protected]/gems/activesupport-5.0.1/lib/active_support/notifications.rb:166:in `instrument'
from /home/davi/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/engine.rb:647:in `load_config_initializer'
from /home/davi/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/engine.rb:612:in `block (2 levels) in <class:Engine>'
from /home/davi/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/engine.rb:611:in `each'
from /home/davi/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/engine.rb:611:in `block in <class:Engine>'
from /home/davi/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/initializable.rb:30:in `instance_exec'
from /home/davi/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/initializable.rb:30:in `run'
from /home/davi/.rvm/gems/[email protected]/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'
....
Dank für die Hilfe, die ich ändern, um Ihren Code versuchen, aber jetzt Fehler ist diese '' 'Rechner ist kein Modul (Typeerror) '' ' –
Es tut mir leid, Spree bereits Rechner als eine Klasse definiert. Ich habe die Antwort bearbeitet. –
noch einmal, ich habe versucht, den Code zu ändern und jetzt ist der Fehler das '' 'undefinierte Methode' << 'für nil: NilClass (NoMethodError) '' ' –