2010-11-29 17 views
0

J'ai un itinéraire personnalisé (si je fais cela correctement, cela est la première fois que je l'ai fait) qui ressemble à ceci:la création d'un link_to pour la route personnalisée

map.connect 'purchases/type/:type', :controller => 'purchases', :action => 'index' 

donc je veux créer un link_to qui utiliserait cette URL/achats/type/(somenumber)

ou je suis complètement ouvert pour une meilleure façon de le faire.

Edit:

Je suis en train d'utiliser une catégorie (type) pour filtrer l'indice. Donc, si je clique sur le lien qui serait/achats/type/1 qui montrerait tous les éléments de type 1. Je ne veux pas cela dans le spectacle, et je pourrais le faire avec/achats /? Type = 1, mais j'essaie pour rendre les urls mieux.

Répondre

6

mais non testé Je crois que c'est ce que vous voulez ...

map.purchase_type 'purchases/type/:type', :controller => 'purchases', :action => 'index' 

Puis

link_to 'foo', purchase_type_path(:type => 'your_type') 

Bonne chance.

+4

cela devrait fonctionner, mais vous devrez ajouter _path ou _url à la fin. purchase_type_path (...) –

+0

+1 lors de l'ajout de * path * ou * url * ... – Cory

+0

qui a fonctionné avec le _path. Je vous remercie –

1

Basé sur http://www.tutorialspoint.com/ruby-on-rails-2.1/rails-routes.htm (section "routes nommées"), je vais essayer ce qui suit:

map.purchases_for_type 'purchases/type/:type', :controller => 'purchases', :action => 'index' 

Et je suppose que vous auriez alors appelez avec link_to 'link text', purchases_for_type(@type_param)


Pour référence, Je vais inclure la façon Rails3 de le faire:

match '/purchases/type/:type' => 'purchases#index', :as => "purchases_for_type", :via => "get" 

Ou mieux encore (RESTful):

match '/type/:type/purchases' => 'purchases#index', :as => "purchases_for_type", :via => "get" 

Vous auriez alors appelez avec link_to 'link text', purchases_for_type(@type_param)

+0

Je reçois une méthode non définie 'buyers_for_type ', donc je suppose que je fais quelque chose de mal. Je mets les map.purchases ... dans les routes.rb et le link_to à mon avis. Le purchase_for_type (). Est-ce que cela est correct? –

+0

Mes rails2 sont rouillés ... Peut-être essayer quelque chose comme Cory suggère: 'link_to 'texte de lien', achats_for_type (: type => @type_param)' –