2011-05-06 16 views

Respuesta

29

Suponiendo el modelo Product está asignada como: recursos en su archivo routes.rb:

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

Gracias por esta respuesta, solo una nota '' 'product_path''' es útil si no desea que se devuelva la URL completa. – marksiemers

+0

... y '' 'ruta_polimorffa''' si desea SECAR las cosas en un ayudante - Consulte [Rutas polimórficas] (http://api.rubyonrails.org/classes/ActionDispatch/Routing/PolymorphicRoutes.html) – marksiemers

18

Además de ruta denominada product_url(@product) puede utilizar al general url_for(@product) (docs). Esto tiene un efecto secundario que si ha anidado o rutas espacio de nombres, es más corto:

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

También tenga en cuenta, que por defecto url_for produce relativos URL, al igual que product_path lo haría, que en función de sus necesidades podría ser bueno o malo. Para obtener la URL completa, pase :only_path => false.

+2

' url_for' también puede producir urls de espacio de nombres. Para lograr esto, haga algo como 'url_for ([: namespace, @product])'. –

Cuestiones relacionadas