-1
Je suis mise à niveau mes rails et Spree Rails 4.2 et Spree 3.1Impossible de passer outre une méthode dans le modèle de frénésie
j'avais overriden méthode purchase!
dans Payment
modèle
Voici comment la méthode est en fête
module Spree
class Payment < Spree::Base
module Processing
def purchase!
started_processing!
gateway_action(source, :purchase, :complete)
end
end
end
end
Voici comment il a été redéfinie dans rails 3.2
(et il travaillait jusqu'à présent)
Spree::Payment::Processing.class_eval do
def purchase!
started_processing!
if source.class == Spree::PurchaseOrder
gateway_action(source, :authorize, :pend)
else
gateway_action(source, :purchase, :complete)
end
end
end
Mais maintenant, je reçois l'erreur suivante avec Rails 4.2 et Spree 3,1
/home/deepak/workspace/Project/app/models/spree/payment/processing_decorator.rb:2:in `<module:Spree>': superclass mismatch for class Payment (TypeError)
from /home/deepak/workspace/Project/app/models/spree/payment/processing_decorator.rb:1:in `<top (required)>'
from /home/deepak/.rvm/gems/ruby-2.3.1/gems/zeus-0.15.10/lib/zeus/load_tracking.rb:76:in `load'
from /home/deepak/.rvm/gems/ruby-2.3.1/gems/zeus-0.15.10/lib/zeus/load_tracking.rb:76:in `load'
from /home/deepak/.rvm/gems/ruby-2.3.1/gems/zeus-0.15.10/lib/zeus/load_tracking.rb:68:in `load'
from /home/deepak/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:268:in `block in load'
from /home/deepak/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:240:in `load_dependency'
from /home/deepak/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:268:in `load'
from /home/deepak/workspace/Project/config/application.rb:16:in `block (2 levels) in <class:Application>'
from /home/deepak/workspace/Project/config/application.rb:15:in `glob'
from /home/deepak/workspace/Project/config/application.rb:15:in `block in <class:Application>'
Il suffit d'ajouter un fichier dans l'initialiseur avec le code original, en ayant la méthode dont vous avez besoin. –
Le module a quelques méthodes supplémentaires https://github.com/spree/spree/blob/2-0-stable/core/app/models/spree/payment/processing.rb –
ce n'est pas grave, vous voulez juste ouvrir la classe correctement 'module Spree classe Paiement