私はスプリー3.1で注文番号をインクリメンタルにしようとしています。スプリー3.1:注文番号のインクリメント
私はこれだけだ:
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
をそれだけで変更接頭辞です。
正しい結果を得るためにnew_candidate
を書き直すにはどうすればよいですか?
#lib/spree/core/number_generator.rb
def new_candidate(length)
@prefix + length.times.map { @candidates.sample(random: @random) }.join
end
これは完璧に動作しますが、今、私は宝石に触れることなくアプリで全体NumberGeneratorのモジュールを上書きする問題を得ました。 – bonekost
ファイルlib/spree/core/number_generator_decorator.rbのジェネレータクラスで 'class_eval'を使用できます。また、libフォルダがconfig/application.rbに置かれていることを確認してください: 'config.autoload_paths << Rails.root.join( 'lib')' –
'NumberGenerator.class_eval do'を追加しましたが、動かないのです。 。 – bonekost