Ich möchte, dass meine URLs Bindestrich -
anstelle von Unterstrichen _
als Worttrennzeichen verwenden. Zum Beispiel controller/my-action
anstelle von controller/my_action
.
Ich bin über zwei Dinge überrascht:
- Google et al. weiterhin zu unterscheiden.
- Dieser Ruby on Rails verfügt nicht über einen einfachen globalen Konfigurationsparameter, dem
-
er_
im Routing zugeordnet werden kann. Oder doch?
Die beste Lösung ist die Verwendung :as
einer benannten Route.
Meine Idee ist es, das Rails-Routing zu ändern, um nach dieser globalen Konfiguration -
zu suchen und zu wechseln , _
bevor es an eine Controller-Aktion gesendet wird.
Gibt es einen besseren Weg?
Antworten:
Mit Rails 3 und höher können Sie Folgendes tun:
Eine andere Möglichkeit besteht darin, Rails über einen Initialisierer zu ändern. Ich empfehle dies jedoch nicht, da es in zukünftigen Versionen möglicherweise kaputt geht (bearbeiten: funktioniert nicht in Rails 5).
Die Verwendung
:path
wie oben gezeigt ist besser.quelle
Sie können Controller- und Aktionsnamen überladen, um Bindestriche zu verwenden:
Sie können in der Konsole testen:
quelle
Sie können benannte Routen verwenden. Es erlaubt die Verwendung von '-' als Worttrennzeichen. In route.rb,
Jetzt werden URLs wie http: // my_application / abc zum angegebenen Controller und zur angegebenen Aktion.
Auch zum Erstellen dynamischer URLs
In diesem Fall werden 'id1, id2 & id2 als http-Parameter an die Aktion übergeben
In Ihren Aktionen und Ansichten,
würde zu URL ' http: // my_application / val1-val2-val3 ' auswerten .
quelle
Wenn Sie in einem Controller und einer Ansichtsdatei Unterstriche verwenden, verwenden Sie einfach Bindestriche in Ihrer Routendatei, und es funktioniert.
get 'blog / example-text' das ist meine Route für diesen Controller
def example_text end <- das ist mein Controller
und example_text.html.erb ist die Datei
und dies ist der eigentliche Link site.com/blog/example-text
Ich dachte, das funktioniert bei mir und es ist effektiver als es SEO unterstreicht
quelle