我正在使用Spree Commerce 3-0-stable
作为电子商务应用,我正在尝试覆盖默认的Order
前缀,但似乎找不到合适的方法来执行此操作。 gem设置像这样的前缀
include Spree::Core::NumberGenerator.new(prefix: 'R')
这是整个文件https://github.com/spree/spree/blob/master/core/app/models/spree/order.rb#L16
NumberGenerator
助手在这里:
https://github.com/spree/spree/blob/master/core/lib/spree/core/number_generator.rb
更改此前缀的最佳方法是什么?鉴于初始化是直接在include上完成的,我有点迷失。
提前致谢。
答案 0 :(得分:0)
从我的角度来看,狂热的某个人应该为那段代码打耳光......
永远不会少,我认为你可以很容易地改变它。我试图为你创建一个最小的有用的例子
class NumberGenerator < Module
attr_accessor :prefix
def initialize(options)
@prefix = options.fetch(:prefix)
end
def included(klazz)
number_generator = self
klazz.class_eval do
define_singleton_method(:number_generator) { number_generator }
end
end
end
class Order
include NumberGenerator.new(prefix: 'R')
end
puts Order.number_generator.prefix # => R
Order.number_generator.prefix = 'Q'
puts Order.number_generator.prefix # => Q
答案 1 :(得分:0)
在你的spree.rb中添加,
Spree::Order.number_generator.prefix = 'Q'