Ich versuche, Bestellnummer in Spree 3.1 inkrementell zu machen.Spree 3.1: Inkrement Bestellnummer
Ich habe nur dieses:
Spree::Order.class_eval do
before_validation(on: :create) do
self.number = Spree::Core::NumberGenerator.new(prefix: 'S').send(:generate_permalink, Spree::Order)
end
end
aber es ist nur ändern Präfix.
Wie soll ich new_candidate
umschreiben, um das richtige Ergebnis zu erhalten?
#lib/spree/core/number_generator.rb
def new_candidate(length)
@prefix + length.times.map { @candidates.sample(random: @random) }.join
end
Es funktioniert perfekt, aber jetzt habe ich Probleme, ganze NumberGenerator-Modul in App zu überschreiben, ohne Edelstein zu berühren. – bonekost
Sie können 'class_eval' für die Generatorklasse in der Datei lib/spree/core/number_generator_decorator.rb verwenden. Stellen Sie außerdem sicher, dass der lib-Ordner automatisch geladen wird, indem Sie ihn in config/application.rb platzieren: 'config.autoload_paths << Rails.root.join ('lib')' –
Ich habe 'NumberGenerator.class_eval do' hinzugefügt, aber es funktioniert nicht .. – bonekost