Comment faire pour obtenir l'url de l'objet du contrôleur
J'ai un Product
modèle.
Comment puis-je obtenir l'url d'un produit dans Rails 3, dans un contrôleur.
Par exemple (pseudo-code):
def foobar
@product = Product.first
puts @product.url
end
Est une chose possible?
OriginalL'auteur Christian Fazzini | 2011-05-06
Vous devez vous connecter pour publier un commentaire.
En supposant que le
Product
modèle est mappé comme :les ressources de votreroutes.rb
fichier:product_path
est utile si vous ne voulez pas la totalité de l'url retournée....et
polymorphic_path
si vous voulez SÉCHER les choses dans un helper - Voir PolymorphicRoutesOriginalL'auteur Simone Carletti
En plus de route nommée
product_url(@product)
vous pouvez utiliser le généralurl_for(@product)
(docs). Cela a un effet secondaire que si vous avez imbriquées ou des espaces de routes, il est plus court:Est aussi à noter que par défaut
url_for
produit relative Url, tout commeproduct_path
serait, selon vos besoins peut être bon ou mauvais. Pour obtenir l'URL complète, passer:only_path => false
.url_for
peut aussi produire des espaces de url. Pour ce faire, effectuez quelque chose commeurl_for([:namespace, @product])
.OriginalL'auteur Laas