2008-09-17 10 views

Antwort

6

Überschreiben Sie die to_param-Methode in Ihren Modellklassen, sodass die numerische Standard-ID durch eine aussagekräftige Zeichenfolge ersetzt wird. Zum Beispiel verwendet diese Frage best-permalinking-for-rails in der URL.

Ryan Bates hat eine Railscast on this topic.

0

Überprüfen Sie das permalink_fu-Plugin (aus Mephisto extrahiert) ... das Git-Repository ist located here.

3

ActiveSupport hat eine neue Methode in Rails, um dies zu unterstützen - String # parameterize. Das entsprechende Commit ist here; Das in der Commit-Nachricht angegebene Beispiel ist "Donald E. Knuth" .parameterisieren => "donald-e-knuth"

In Kombination mit der von John Topley erwähnten to_param-Überschreibung vereinfacht dies benutzerfreundlichere URLs erheblich.

2

rsl's stringex ist ziemlich genial, denke an es als permalink_fu richtig gemacht.

2

Ich verwende weitgehend to_param wie von John Topley vorgeschlagen.

Denken Sie daran, Indizes so zu setzen, dass alles, was Sie in to_param verwenden, schnell durchsucht werden kann, oder dass Sie bei jedem Zugriff einen vollständigen Tabellenscan erhalten. (Nicht ein Leistungsverbesserer!)

Eine schnelle Umgehung ist, die ID irgendwo in dort zu setzen, in welchem ​​Fall ActiveRecord den Rest davon als cruft ignoriert und nur auf der Identifikation sucht. Aus diesem Grund sehen Sie viele Rails-Sites mit URLs wie http://example.com/someController/123-a-half-readable-title.

Für weitere Details zu dieser und anderen SEO Beobachtungen aus meiner Erfahrung mit Rails, finden Sie this page auf meiner Website nützlich.

1

Für mich friendly_id funktioniert gut, es kann auch Nacktschnecken generieren, so dass Sie keine doppelten URLs berücksichtigen müssen, werden auch Bereiche unterstützt.

0

Ich habe ein kleines und einfaches Juwel gemacht, das es einfacher macht, die to_param-Methode zu überschreiben. Es kann gefunden werden.