Die umfassendste und benutzerfreundlichste Dokumentation finden Sie im FriendlyId-Handbuch.
FriendlyId ist der „Schweizer Armee-Bulldozer“ für Slugging- und Permalink-Plugins für Active Record. Damit können Sie hübsche URLs erstellen und mit benutzerfreundlichen Zeichenfolgen arbeiten, als wären es numerische IDs.
Mit FriendlyId können Sie ganz einfach dafür sorgen, dass Ihre Anwendung URLs wie die folgenden verwendet:
https://example.com/states/washington
anstatt:
https://example.com/states/4323454
Stellen Sie Fragen zu Stack Overflow mit dem „Friendly-id“-Tag und werfen Sie bei Fehlern einen Blick in den Abschnitt „Fehler“.
FriendlyId bietet viele erweiterte Funktionen, darunter:
Fügen Sie diese Zeile zur Gemfile Ihrer Anwendung hinzu:
gem 'friendly_id' , '~> 5.5.0'
Hinweis: Sie MÜSSEN 5.0.0 oder höher für Rails 4.0+ verwenden.
Und dann ausführen:
bundle install
Fügen Sie der gewünschten Tabelle eine slug
Spalte hinzu (z. B. Users
).
rails g migration AddSlugToUsers slug:uniq
Generieren Sie die benutzerfreundliche Konfigurationsdatei und eine neue Migration
rails generate friendly_id
Hinweis: Sie können die CreateFriendlyIdSlugs
-Migration löschen, wenn Sie die Slug-Verlaufsfunktion nicht verwenden. (Mehr lesen)
Führen Sie die Migrationsskripts aus
rails db:migrate
Bearbeiten Sie die Datei app/models/user.rb
wie folgt:
class User < ApplicationRecord
extend FriendlyId
friendly_id :name , use : :slugged
end
Bearbeiten Sie die Datei app/controllers/users_controller.rb
und ersetzen Sie User.find
durch User.friendly.find
class UserController < ApplicationController
def show
@user = User . friendly . find ( params [ :id ] )
end
end
Wenn Sie nun einen neuen Benutzer erstellen, gehen Sie wie folgt vor:
User . create! name : "Joe Schmoe"
Sie können dann über die URL http://localhost:3000/users/joe-schmoe auf die Benutzershowseite zugreifen.
Wenn Sie FriendlyId zu einer vorhandenen App hinzufügen und Slugs für vorhandene Benutzer generieren müssen, tun Sie dies über die Konsole oder den Runner oder fügen Sie eine Rake-Aufgabe hinzu:
User . find_each ( & :save )
:allow_nil
Sie können allow_nil: true
an die Methode friendly.find()
übergeben, wenn Sie das Auslösen von ActiveRecord::RecordNotFound
vermeiden und nil
akzeptieren möchten.
MyModel . friendly . find ( "bad-slug" ) # where bad-slug is not a valid slug
MyModel . friendly . find ( 123 ) # where 123 is not a valid primary key ID
MyModel . friendly . find ( nil ) # maybe you have a variable/param that's potentially nil
#=> raise ActiveRecord::RecordNotFound
MyModel . friendly . find ( "bad-slug" , allow_nil : true )
MyModel . friendly . find ( 123 , allow_nil : true )
MyModel . friendly . find ( nil , allow_nil : true )
#=> nil
Bitte melden Sie sie im Github-Issue-Tracker für dieses Projekt.
Wenn Sie einen Fehler melden möchten, geben Sie bitte die folgenden Informationen an:
Wenn Sie dazu in der Lage sind, hilft es noch mehr, wenn Sie FriendlyId auf Github forken und einen Test hinzufügen können, der den aufgetretenen Fehler reproduziert.
Weitere Anregungen zum Melden von Fehlern finden Sie in diesem Artikel.
FriendlyId wurde ursprünglich von Norman Clarke und Adrian Mugnolo erstellt, mit maßgeblicher Unterstützung von Emilio Tagua zu Beginn seiner Gründung. Es wird jetzt von Norman Clarke und Philip Arndt gepflegt.
Wir sind zutiefst dankbar für die großzügigen Beiträge vieler Freiwilliger im Laufe der Jahre.
Copyright (c) 2008–2020 Norman Clarke und Mitwirkende, veröffentlicht unter der MIT-Lizenz.
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software“) erhält, kostenlos die Erlaubnis erteilt, mit der Software ohne Einschränkung zu handeln, einschließlich und ohne Einschränkung der Rechte zur Nutzung, zum Kopieren, Ändern und Zusammenführen , Kopien der Software zu veröffentlichen, zu verteilen, unterzulizenzieren und/oder zu verkaufen und Personen, denen die Software zur Verfügung gestellt wird, dies zu gestatten, vorbehaltlich der folgenden Bedingungen:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD „WIE BESEHEN“ ZUR VERFÜGUNG GESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER HAFTBAR FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNG, WEDER AUS EINER VERTRAGLICHEN HANDLUNG, AUS HANDLUNG ODER ANDERWEITIG, DIE SICH AUS, AUS ODER IN ZUSAMMENHANG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN HANDELN IN DER SOFTWARE ERGEBEN SOFTWARE.