首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:duplicate_extra的定义

:duplicate_extra的定义
EN

Stack Overflow用户
提问于 2018-02-07 21:03:03
回答 1查看 28关注 0票数 1

在Spree代码库中,类ProductDuplicator有一个duplicate方法:

代码语言:javascript
复制
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是在哪里定义的,以及它是如何工作的。文档还不清楚。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-07 22:05:03

默认情况下不定义duplicate_extra方法。文件上说:

为站点特定的操作定义"duplicate_extra“(如用于附加字段)。

它告诉您,如果您想要更多的复制逻辑,比如复制其他字段,那么您可以自己定义它。

这一行代码以及上面的注释:

代码语言:javascript
复制
  # allow site to do some customization
  new_product.send(:duplicate_extra, product) if new_product.respond_to?(:duplicate_extra)

清楚地检查产品是否响应以另一个产品为参数的方法duplicate_extra

duplicate_extra方法应该定义为Product的实例方法(或者如果您要对它进行子类化,可以在子类中定义它),只需一个参数,如下所示:

代码语言:javascript
复制
class Product
  def duplicate_extra(original_product)
    # copy custom stuff from the original product to self
  end
end

您也可以尝试在狂欢松弛上询问更多细节。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48673192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档