2010-09-28 7 views
8

J'aime url style polymorphes beaucoup, donc je peux écrirerails url polymorphes params

link_to 'New taste', [:new, :taste] 

au lieu de

link_to 'New taste', new_taste_path 

Mais est-il possible d'ajouter des paramètres de requête à première sans utiliser polymorphic_url/polymorphic_path?

+0

Pour autant que je sais tu ne peux pas. – vise

+0

Vous voulez dire que 'link_to 'Nouveau goût', [: nouveau,: goût],: a_param => 'param'' n'est pas possible? – Yannis

+0

@Yannis: non, ceci ajoute un attribut à l'étiquette d'ancrage – tig

Répondre

3

Oui - vous pouvez passer comme ceci:

link_to 'New taste', [[:new, :taste], :a_param => 'param'] 
+1

Semble qu'il est disponible seulement dans les rails ~> 4.1 – tig

8

Non Lorsque vous passez un tableau à ces méthodes (link_to, redirect_to, etc.) l'argument URL est passé directement à url_for, qui appelle lui-même polymorphic_path avec un seul argument. Comme vous l'avez indiqué, polymorphic_path permet aux paramètres d'être passés en tant que second argument, mais ils ne peuvent pas être transmis comme dans le premier argument.

Pour passer params et utiliser le routage polymorphes vous devez utiliser polymorphic_path/polymorphic_url comme ceci:

link_to 'New taste', polymorphic_path([:new, :taste], :spiciness => :on_fire)