我有一個Product
模型。如何獲取控制器中的對象的url
如何在控制器中獲取Rails 3中產品的URL。
例如(僞代碼):
def foobar
@product = Product.first
puts @product.url
end
這種事可能嗎?在routes.rb
文件資源:
我有一個Product
模型。如何獲取控制器中的對象的url
如何在控制器中獲取Rails 3中產品的URL。
例如(僞代碼):
def foobar
@product = Product.first
puts @product.url
end
這種事可能嗎?在routes.rb
文件資源:
假設Product
模型映射爲
def foobar
@product = Product.first
url = product_url(@product)
end
除了命名的路由product_url(@product)
你可以使用一般的url_for(@product)
(docs)。這有一個副作用,如果你嵌套或命名空間的路線,它短小:
customer_product_url(@customer, @product)
url_for([@customer, @product])
還要注意,在默認情況下url_for
產生相對網址,就像product_path
會,這取決於你的需求可能會是好是壞。要獲得完整的網址,請通過:only_path => false
。
' url_for'也可以產生命名空間的URL。要做到這一點,請執行'url_for([:namespace,@product])''。 – 2013-09-06 17:27:07
感謝這個答案,如果你不想要完整的url返回,只需要注意'''product_path'''。 – marksiemers 2015-03-20 14:54:05
...和'''polymorphic_path'''如果你想在助手中幹起來 - 參見[PolymorphicRoutes](http://api.rubyonrails.org/classes/ActionDispatch/Routing/PolymorphicRoutes.html) – marksiemers 2015-03-20 15:53:01