Miglior permalinking per Rails
-
01-07-2019 - |
Domanda
Quale pensi sia il modo migliore per creare URL SEO friendly (dinamicamente) in Rails?
Soluzione
Sostituisci il to_param
metodo nelle classi del modello in modo che l'ID numerico predefinito venga sostituito con una stringa significativa.Ad esempio, questa stessa domanda utilizza best-permalinking-for-rails nell'URL.
Ryan Bates ha una Railscast su questo argomento.
Altri suggerimenti
ActiveSupport ha un nuovo metodo in Rails per aiutare questo: String#parameterize.Il commit rilevante è Qui;l'esempio fornito nel messaggio di commit è "Donald E.Knuth".parameterize => "donald-e-knuth"
In combinazione con l'override to_param menzionato da John Topley, questo rende gli URL più amichevoli molto più semplici.
stringex di RSL è davvero fantastico, consideralo come se fosse fatto bene.
Utilizzo ampiamente to_param
come suggerito da John Topley.
Ricordati di inserire indici in modo tale che qualunque cosa tu stia utilizzando in to_param sia rapidamente ricercabile, altrimenti ti ritroverai con una scansione completa della tabella ad ogni accesso.(Non un potenziatore delle prestazioni!)
Una soluzione rapida è inserire l'ID da qualche parte lì dentro, nel qual caso ActiveRecord ignorerà il resto come cruft e cercherà semplicemente l'ID.Questo è il motivo per cui vedi molti siti Rails con URL simili http://example.com/someController/123-a-half-readable-title .
Per maggiori dettagli su questa e altre osservazioni SEO dalla mia esperienza con Rails, potresti trovare questa pagina sul mio sito utile.
Per me friendly_id funziona bene, può anche generare slug, quindi non è necessario preoccuparsi degli URL duplicati, sono supportati anche gli ambiti.
Dai un'occhiata al plugin permalink_fu (estratto da Mephisto)...il repository Git lo è situato qui.
Ho creato un piccolo e semplice gioiello che semplifica l'override del metodo to_param.Può essere trovato Qui.