【问题标题】:Passing options hash into a method将选项哈希传递给方法
【发布时间】:2013-11-27 23:03:31
【问题描述】:

我想像这样修改路径辅助方法:

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 哈希中。最干净的正确方法是什么?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    大概是这样的:

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

    【讨论】:

    • 这行得通,虽然我不认为名称的最后一个逗号:product.name.parameterize,是必要的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    相关资源
    最近更新 更多