将选项哈希传递给方法

时间:2013-11-14 18:59:30

标签: ruby-on-rails ruby

我想修补一个像这样的路径助手方法:

def product_path(product, options={})
  url_for(controller: :product, action: :show,
          id: product.id, name: product.name.parameterize,
          options)
end

我想保留选项哈希,所以当我引用product_path时,我可以调用方法:

product_path(product, anchor: '#product_description')

上面引用的我的product_path不起作用,因为我无法将params哈希传递给url_for哈希。什么是最干净的正确方法呢?

1 个答案:

答案 0 :(得分:1)

可能类似于:

def product_path(product, options={})
   hash = {
     controller: :product, 
     action: :show,
     id: product.id, 
     name: product.name.parameterize,
   }.merge(options)
   url_for(hash)
end