2010-01-12 9 views
0

C'est une question très basique avec probablement une réponse facile. Disons que j'ai un modèle appelé produit. Quand j'ajoutePar défaut pour passer une URL à link_to dans Rails

map.resources :products 

à mon routes.rb j'ai accès à certains chemins par défaut new_product_path, edit_product_path et ainsi de suite. Si je comprends bien, ceci devrait être utilisé lors de la liaison à une ressource, par ex. en utilisant la méthode d'aide link_to:

link_to "Edit Product", edit_product_path(@product) 

Ma question est la suivante: Que dois-je faire quand j'ai d'autres méthodes de commande comme par exemple

def do_something 
    ... 
end 

Quelle est la « meilleure » façon de créer un lien vers cette méthode de commande?

link_to "Do Something", {:controller => 'products', :action => 'do_something', :id => @product.id} 

certainement fonctionnerait. Mais est-ce que je devrais utiliser?

J'espère avoir fait valoir mon point de vue! S'il vous plaît commenter sinon. Je vais essayer de l'expliquer mieux alors.

Répondre

1

Vous voudrez peut-être lire le Rails Routing, plus précisément, adding a new Restful route.

Si vous utilisez cette méthode, je crois qu'il est assez simple:

# routes.rb 
map.resources :products, :member => { :do_something => :get } 

# your view.rb file 
link_to "Do Something", do_something_product_path(object_id) 

Assurez-vous également que vous lisez la section concernant les « routes de collecte » si vous voulez que l'URL de fonctionner sur tous les produits (comme une page d'index plus complexe).

+0

merci pour la réponse rapide – StefanS

+0

@ Stefan @ - Content de vous aider :-) –

Questions connexes