2010-12-04 6 views
0

Dans mon application Rails 3, j'énumère beaucoup d'éléments sur la page d'accueil. Certains d'entre eux sont obscurs, et je voudrais limiter ma liste aux seuls éléments populaires à moins que l'utilisateur clique sur un lien spécifique qui "zéros" le limiteur.Comment puis-je supprimer les valeurs de requête de mon URL Rails?

Ce que je travaille maintenant, mais quand l'utilisateur choisit de « Afficher tous les articles », je finis avec une url laide:

http://myapp.com/?limiter=0 

Est-il possible que je peux dépouiller que de telle sorte que la l'utilisateur ne voit pas l'attribut laid à la fin de l'URL?

+0

Pourquoi ne pouvez-vous pas créer une belle URL pour "Afficher tous les éléments"? À quoi ressemblent vos autres URL de filtrage? – theIV

Répondre

1

Non, n'utilisez pas le POST. POST n'est supposé être utilisé que lorsque vous effectuez un changement d'état sur le serveur. Utilisez un AJAX GET si vous avez vraiment besoin de faire cela.

Mieux encore, familiarisez-vous avec les paramètres GET comme celui-ci. C'est normal. Et, c'est comme ça pour une raison: il permet de mettre en signet une ressource, y compris les paramètres nécessaires pour reproduire la demande plus tard.

Lire sur REST. Apprend le. Vivre. Aimer.

0

Il existe un certain nombre d'approches possibles. Probablement le plus évident est d'avoir une page séparée pour votre show_all. Il semble que vous essayez d'en faire trop avec votre page d'accueil.

Si vous devez les avoir sur la page d'accueil, et que votre lien se trouve également sur la page d'accueil, vous pouvez utiliser un appel ajax pour charger vos éléments sans avoir à rediriger vers cette URL.

Enfin je suppose que vous pourriez essayer de faire un itinéraire juste pour cette situation. Je n'ai pas vraiment d'expérience avec les routes Rails3, donc je ne peux pas suggérer de syntaxe. Vraiment, cependant, cela ressemble à un problème de conception d'application, pas à un problème technique. Je vous encourage fortement à repenser comment vous essayez de faire cela. Cela ne ressemble pas à une fonctionnalité qui convient à mettre sur votre page d'accueil. Faites une action show_all distincte.

+0

Tout ce qu'il est est un mécanisme de filtrage. La nature des données est que le facteur limitant est prévisible. Cela fait certainement beaucoup, mais cette limite que j'ajoute dynamiquement à mon AREL ne semble pas justifier une méthode d'action et une vue complètement séparées. J'apprécie votre contribution si Doug, merci. – AKWF