2013-11-14 77 views
0

我想猴補丁的路徑輔助方法,這樣的方法:傳球選擇散列到

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

大概是這樣的:

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

的作品,但我不認爲最後一個逗號,其中名稱:product.name.parameterize,是必要的 – shicholas