2011-05-06 18 views

回答

29

假設Product模型映射爲

def foobar 
    @product = Product.first 
    url = product_url(@product) 
end 
+2

感謝這個答案,如果你不想要完整的url返回,只需要注意'''product_path'''。 – marksiemers 2015-03-20 14:54:05

+0

...和'''polymorphic_path'''如果你想在助手中幹起來 - 參見[PolymorphicRoutes](http://api.rubyonrails.org/classes/ActionDispatch/Routing/PolymorphicRoutes.html) – marksiemers 2015-03-20 15:53:01

18

除了命名的路由product_url(@product)你可以使用一般的url_for(@product)docs)。這有一個副作用,如果你嵌套或命名空間的路線,它短小:

customer_product_url(@customer, @product) 
url_for([@customer, @product]) 

還要注意,在默認情況下url_for產生相對網址,就像product_path會,這取決於你的需求可能會是好是壞。要獲得完整的網址,請通過:only_path => false

+2

' url_for'也可以產生命名空間的URL。要做到這一點,請執行'url_for([:namespace,@product])''。 – 2013-09-06 17:27:07

相關問題