3 votes

friendly_id, Supprimer l'étiquette de l'historique

J'utilise friendly_id avec le history pour un modèle appelé page et j'aimerais pouvoir supprimer les bouchons de la base de données des friendly_id_slugs afin qu'ils ne soient plus redirigés et qu'ils puissent être réutilisés.

J'ai trouvé quelques solutions possibles, mais je ne sais pas comment procéder :

  1. Créer un nouveau modèle et un nouveau contrôleur pour le friendly_id_table et faire les choses comme je le ferais pour n'importe quel autre modèle
  2. Ajouter un destroy_slug action pour pages_controller.rb qui recherche la balle et la détruit - cependant, je ne sais pas comment charger la balle. FriendlyId::Slug.find()
  3. Créer un contrôleur dans le fichier FriendlyId espace de noms - aucune idée de la manière de procéder

Quelqu'un peut-il faire une suggestion sur la meilleure façon de procéder ou sur la façon d'accomplir le point 2 ou 3 ? Je vous remercie.

5voto

jif Points 1206

Je procède actuellement de la manière suivante :

# slug_controller.rb
class SlugsController < ApplicationController
  def destroy
    @slug = FriendlyId::Slug.find(params[:id])
    @slug.destroy
    redirect_to :back, :notice => "The URL <strong>/#{@slug.slug}</strong> has been removed"
  end
end

# routes.rb
resources :slugs, :only => :destroy

# in a view
<%= link_to 'Delete slug', slug_path(slug.id), :method => :delete %>

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