Question

Selon vous, quel est le meilleur moyen de créer (dynamiquement) des URL conviviales pour le référencement dans Rails?

Était-ce utile?

La solution

Remplacez la méthode to_param dans vos classes de modèle afin que l'ID numérique par défaut soit remplacé par une chaîne explicite. Par exemple, cette question même utilise l'URL best-permalinking-for-rails .

Ryan Bates a publié un Railscast sur ce sujet .

Autres conseils

ActiveSupport a une nouvelle méthode dans Rails pour aider ceci - String # parameterize. Le commit pertinent est ici ; L’exemple donné dans le message de validation est " Donald E. Knuth " .parameterize = > "donald-e-knuth"

En combinaison avec la substitution to_param mentionnée par John Topley, cela rend les URL plus conviviales beaucoup plus simples.

Le stringex de rsl est assez génial, pensez-y comme étant permalink_fu .

J'utilise largement to_param comme suggéré par John Topley.

N'oubliez pas de définir des index tels que tout ce que vous utilisez dans to_param soit rapidement interrogeable, sans quoi vous obtiendrez une analyse complète de la table à chaque accès. ( Ce n'est pas une amélioration de la performance!)

Une solution rapide consiste à insérer l'ID quelque part, auquel cas ActiveRecord ignorera le reste de celui-ci comme étant cruel et recherchera simplement l'identifiant. C’est la raison pour laquelle vous voyez beaucoup de sites Rails avec des URL telles que http: // exemple .com / someController / 123-a-half-lisible-title .

Pour plus de détails sur ce point et sur d’autres observations relatives au référencement de mon expérience avec Rails, vous pouvez trouver cette page utile sur mon site.

Pour moi, friendly_id fonctionne bien, il peut également générer des slugs. Vous n'avez donc pas à vous soucier des URL dupliquées, les portées sont également prises en charge.

Découvrez le plug-in permalink_fu (extrait de Mephisto) ... le référentiel Git est situé ici .

J'ai créé un petit bijou simple qui facilite la substitution de la méthode to_param. Vous pouvez le trouver ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top