2010-11-27 21 views
0

Obtenir cette erreur localement et en production avec une installation propre. Les données sur les semences ont été chargées. Rails 3.0.3, rubis 1.87 (développement) et rubis 1.8.7 REE en prod.Spree Error - Erreur lors de l'enregistrement de la calculatrice Calculator :: PriceBucket

gemmes frénésie folles (0.30.1) spree_api (0.30.1) spree_auth (0.30.1) spree_core (0.30.1) spree_dash (0.30.1) spree_promo (0.30.1) spree_sample (0.30.1)

erreur de développement:

=> Booting WEBrick => Rails 3.0.3 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach => Ctrl-C to shutdown server 
Error registering calculator Calculator::PriceBucket 
[2010-11-27 12:57:49] INFO WEBrick 1.3.1 
[2010-11-27 12:57:49] INFO ruby 1.8.7 (2010-08-16) [i686-darwin10.4.3] 
[2010-11-27 12:57:49] INFO WEBrick::HTTPServer#start: pid=18146 port=3000 

Prod erreur:

Error message: 
superclass mismatch for class PriceBucket 
Exception class: 
TypeError 
Application root: 
/home/deploy/webstores/mystore/current Backtrace: 

ligne Emplacement du fichier

0 /home/deploy/.bundler/ruby/1.8/spree-e9c3485bf22e/core/app/models/calculator/price_bucket.rb 1 
+0

ce n'est pas une solution que je suis à l'aise avec, mais cela fonctionne jusqu'à ce que le petit bijou de spree_core est mis à jour J'ai fourchu et "piraté" un correctif pour le faire fonctionner - github.com/dblsystems/spree Pas à l'aise avec cette solution, mais cela fonctionne pour le moment. – BandsOnABudget

+0

Yikes je l'ai fait dans Rails2 Spree, et j'essaie d'éviter cela à tout prix maintenant. – Trip

Répondre

0

Cela a fini par travailler pour moi bien que son très différent de votre erreur:

Il convient également de noter que les façon dont les choses sont calculées Spree Rails3 est un peu léger différent. L'objet contient maintenant les attributs de item_total, plutôt que d'appeler simplement object.length.

Dans mon principal joyau d'extension:

def self.activate 
    Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c| 
     Rails.env.production? ? require(c) : load(c) 
    end 
    Calculator::PerWeight.register 
    end 

Dans ma calculatrice personnalisée:

def self.register 
    super 
    ShippingMethod.register_calculator(self) 
end