Was ist Ihrer Meinung nach der beste Weg, um SEO-freundliche URLs (dynamisch) in Rails zu erstellen?Bestes Permalinking für Rails
Antwort
Ü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.
Überprüfen Sie das permalink_fu-Plugin (aus Mephisto extrahiert) ... das Git-Repository ist located here.
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.
rsl's stringex ist ziemlich genial, denke an es als permalink_fu richtig gemacht.
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.
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.
Ich habe ein kleines und einfaches Juwel gemacht, das es einfacher macht, die to_param-Methode zu überschreiben. Es kann gefunden werden.
- 1. Bestes Versionskontrollsystem für IIS?
- 2. Bestes Toolkit für Ajax?
- 3. Bestes Videoformat für HTML5?
- 4. Bestes OOP-Design für Datenbank
- 5. Bestes Verwendungsmuster für einen DataContext
- 6. Bestes YouTube-Juwel für Ruby?
- 7. Bestes allgemeines Nachrichtenformat für SOA?
- 8. Bestes Cache-Framework für Java
- 9. Bestes Tutorial für Ruboto (Ruby für Android)?
- 10. Bestes Framework für Absturzberichte für .NET-Desktop-Anwendungen?
- 11. Bestes Design-Muster für dieses Problem
- 12. Bestes GUI Framework für Ruby. Nicht Schuhe
- 13. Bestes Open-Source-Projekt für Audiosignalverarbeitung?
- 14. Bestes Gerät für SVG-Grafiken in R?
- 15. Bestes Unit-Test-Framework für Clojure?
- 16. Bestes Debugging-Tool für C und C++
- 17. Bestes Ruby-Framework für Web-Entwicklung
- 18. Bestes Entwurfsmuster für ein bedingtes Buchungssystem
- 19. Bestes Sicherheits-Framework für C# Desktop-Anwendungen?
- 20. Bestes Beispiel für abstrakte Klasse in Android
- 21. Bestes Disassembler-Tool für den .NET-Reflektor?
- 22. Bestes Code Review Tool für große Userbase?
- 23. Bestes Ajax-Framework für Drag & Drop-Unterstützung
- 24. Bestes Modell für eine NIO-Implementierung?
- 25. Bestes Framework für kleine 3D-Anwendung
- 26. Bestes Entwurfsmuster für das folgende Szenario
- 27. Bestes binäres XML-Format für JavaME
- 28. Bestes .NET Framework/Ansatz für modulares Produkt?
- 29. Bestes maschinelles Lernpaket für Python 3x?
- 30. Bestes Python-Modul für Berkeley DB?