2010-11-23 6 views
0

J'ai une commune partielle pour l'index où je veux insérer des liens. sur ce lien je voudrais utiliser les named_routes, commeComment obtenir un itinéraire nommé d'une classe dans les rails?

link_to "Say hi",things_path(:param1=>:hello, :params2=>:there) 

mais je ne sais pas si things_path est users_path, places_path ou reviews_path, parce que cette partie est partagée pour tous les contrôleurs. Il existe un moyen d'obtenir l'itinéraire associé à la classe ou au contrôleur actuel. Je veux quelque chose comme ça

link_to "Say hi", path_of(@current_class)(:param1=>:hello, :params2=>:there) 

Répondre

0

Un assistant de chemin comme cars_path est finalement juste un raccourci pour définir: controller,: action et autres paramètres comme: id. Si vous voulez faire le contrôleur toujours égal au contrôleur actuel, vous pouvez simplement dire

link_to "Dis salut",: action => "index",: param1 =>: bonjour,: params2 =>: il

Étant donné que l'option: controller est omise, il sera supposé être le contrôleur actuel.

+0

Je sais. Encore plus: Puisque je suis déjà sur l'action index, je peux même ignorer le contrôleur et l'action, et le lien pointera vers l'action en cours. Mais le raccourci a du sucre de syntaxe que j'aime. Et je pense dans les applications futures de cette approche sur l'application mi. – Cibernox

1

Il y a plusieurs approches à cet égard. La chose la plus simple est de s'appuyer sur le routage polymorphique, tel que: link_to "Say hi", @my_object. Dans ce cas, les rails regardent la classe @my_object et son état actuel (new_record?) et utilisent l'itinéraire approprié et l'action reposante. En supposant que votre partie est nommé _foo.html.erb cela peut être aussi simple que

link_to 'Say hi', foo 

... ce qui est assez impressionnant. Cette question a été posée auparavant, ici: Polymorphic Routes in Rails - in views mais je suppose qu'il est difficile de trouver des réponses sans connaître les mots magiques "routage polymorphique" :-)

+0

Je vais lire ce fil. Merci beaucoup! – Cibernox

Questions connexes