定义:duplicate_extra
Definition of :duplicate_extra
在 Spree 代码库中,class ProductDuplicator 有一个 duplicate
方法:
def duplicate
new_product = duplicate_product
# don't dup the actual variants, just the characterising types
new_product.option_types = product.option_types if product.has_variants?
# allow site to do some customization
new_product.send(:duplicate_extra, product) if new_product.respond_to?(:duplicate_extra)
new_product.save!
new_product
end
我想弄清楚 :duplicate_extra
的定义位置及其工作原理。 documentation 不清楚。
默认情况下未定义duplicate_extra
方法。文档说:
define "duplicate_extra" for site-specific actions, eg for additional fields
它告诉你如果你想要更多的复制逻辑,比如复制额外的字段,你自己定义它。
这行代码及其上方的注释:
# allow site to do some customization
new_product.send(:duplicate_extra, product) if new_product.respond_to?(:duplicate_extra)
正在明确检查产品是否响应以另一个产品作为参数的方法duplicate_extra
。
duplicate_extra
方法应该被定义为 Product
的一个实例方法(或者如果你是它的子类,你可以在子类中定义它)有一个参数,像这样:
class Product
def duplicate_extra(original_product)
# copy custom stuff from the original product to self
end
end
您也可以尝试在 Spree slack 上询问更多详情。
在 Spree 代码库中,class ProductDuplicator 有一个 duplicate
方法:
def duplicate
new_product = duplicate_product
# don't dup the actual variants, just the characterising types
new_product.option_types = product.option_types if product.has_variants?
# allow site to do some customization
new_product.send(:duplicate_extra, product) if new_product.respond_to?(:duplicate_extra)
new_product.save!
new_product
end
我想弄清楚 :duplicate_extra
的定义位置及其工作原理。 documentation 不清楚。
默认情况下未定义duplicate_extra
方法。文档说:
define "duplicate_extra" for site-specific actions, eg for additional fields
它告诉你如果你想要更多的复制逻辑,比如复制额外的字段,你自己定义它。
这行代码及其上方的注释:
# allow site to do some customization
new_product.send(:duplicate_extra, product) if new_product.respond_to?(:duplicate_extra)
正在明确检查产品是否响应以另一个产品作为参数的方法duplicate_extra
。
duplicate_extra
方法应该被定义为 Product
的一个实例方法(或者如果你是它的子类,你可以在子类中定义它)有一个参数,像这样:
class Product
def duplicate_extra(original_product)
# copy custom stuff from the original product to self
end
end
您也可以尝试在 Spree slack 上询问更多详情。