2010-09-02 17 views
1

Je configure request.format =: mobile dans un ApplicationController before_filter.Rails link_à ne pas automagiquement utiliser request.format comme extension dans les liens

before_filter :some_filter 
def some_filter 
    request.format = :mobile 
end 

Je cette cartographie dans les routes:

map.my_list '/my_list.:format', :controller => "of_no", :action => "significance" 

Quand je fais ce qui suit:

<%= link_to "My List", my_list_path %> 

Je reçois le texte suivant (RÉEL ci-dessous):

<a href="/my_list">My List</a> <!-- THIS IS THE PROBLEM --> 

Je veux que ce soit (ATTENDU ci-dessous):

<a href="/my_list.mobile">My List</a> <!-- THIS IS THE EXPECTED --> 

Cependant, si je fais ce qui suit:

<%= link_to "My List", my_list_path(:format => "mobile") %> 

Puis-je obtenir le résultat attendu, mais le faire à tous les "link_to" est pas une solution viable.

Toute idée?

Merci

+0

Si la spécification du format dans l'assistant n'est pas viable, comment voulez-vous le définir? –

+0

(J'ai édité mon message) Ai-je besoin de spécifier le format dans le helper link_to. Je pensais que ce serait implicite. – nosretep

+0

Avez-vous déjà découvert cela? J'ai rencontré le même problème. –

Répondre

0

Vous ne devriez avoir besoin de spécifier le format dans l'aide si vous voulez que l'URL à afficher my_list.mobile. Toutefois, si votre filtre n'utilise pas l'URL pour déterminer le format et que vous définissez le format dans votre contrôleur, pourquoi en auriez-vous également besoin dans l'URL? Votre contrôleur doit répondre au format .mobile sans l'URL lorsque request.format est remplacé.

Vous pouvez probablement vous en sortir en supprimant la partie .:format de votre définition d'itinéraire et en vous appuyant simplement sur l'objet de requête en cours de définition.

+0

L'exemple de configuration était juste pour montrer la configuration minimum nécessaire pour que quelqu'un d'autre rencontre le problème. Je travaille avec will_paginate, et de manière inhérente (et correctement je crois) rend les liens de pagination avec l'extension .mobile (sous la configuration ci-dessus). Je me demandais si je faisais quelque chose de mal, ou si je manquais quelque chose, empêchait effectivement "link_to" de montrer le même comportement. – nosretep