1 votes

URLs adaptées au référencement où la phrase utilisée peut changer dans Rails

Disons que j'ai http://www.mysite.com/I-Like-Cheeseburgers et je veux qu'il pointe vers l'élément avec l'id 3. Quelque temps plus tard, je change le nom de l'élément, et maintenant son http://www.mysite.com/I-Like-Hamburgers (et peut-être bien d'autres fois). Je veux que toutes ces URL continuent de pointer vers l'élément 3. Est-il efficace de simplement conserver une table de [strings,item_ids] et d'y effectuer une recherche ? Existe-t-il une meilleure solution ?

4voto

bakkal Points 13449

Ou vous pouvez faire comme stackoverflow.com

http://stackoverflow.com/questions/2887068/seo-friendly-urls-where-the-phrase-used-may-change-in-rails

Vous conservez l'identifiant de la question (2887068) dans le lien, dont la partie texte peut être modifiée et qui aboutit toujours à la même page. http://stackoverflow.com/questions/2887068/whatever-you-put o http://stackoverflow.com/questions/2887068/ vous renverra à la même page.

Donc, pour votre exemple, ce serait :

http://www.mysite.com/items/3/I-Like-Cheeseburgers

2voto

Voyta Points 4503

Vous pouvez également utiliser le plugin friendly_id .

Avec :use_slug Cette option permet de conserver l'historique des permaliens et de proposer des solutions pour rediriger vers l'URL actuelle, etc.

class YourModel < ActiveRecord::Base
  has_friendly_id :title, :use_slug => true
end

Voir documentation pour plus.

0voto

Faisal Points 10585

Dans votre modèle, faites

class Article < AR::Base
  def to_param
    "#{id}-#{name.parameterize}"
  end
end

Vos liens ressembleront à ceci : http://mysite.com/articles/3-i-like-cheeseburgers

Lorsque vous essayez de récupérer l'objet, en faisant Article.find(params[:id]) convertirait automatiquement le "3-i-like-cheeseburgers" en un nombre entier et récupérerait l'objet correct. Cela permet de changer le nom, tout en maintenant le lien vers le même objet article.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X