如何将一些键合并到* args然后用这些args调用另一个方法?

时间:2012-09-14 11:03:18

标签: ruby

我有以下方法:

def item(*args, &block)
  options = args.extract_options!
  options.reverse_update({
    brand: false,
    icon: false,
  })
  # Do some stuff
end

这个方法:

def brand(*args, &block)
  options = args.extract_options!
  options[:brand] = true

  self.item(???, &block) # How does this call have to look?
end

最后一行是感兴趣的。我想调用item与调用brand方法完全相同的参数(除了我添加了另一个参数brand)。

1 个答案:

答案 0 :(得分:4)

我写道:

def brand(*args, &block)
  options = args.extract_options!
  options[:brand] = true

  self.item(*(args+[options]), &block)
end