3

と呼ばれるモデルのモジュールを使用friendly_idしていますが、スラッグをテーブルから削除して、リダイレクトせずに再度使用できるようにしたいと考えています。historypagefriendly_id_slugs

考えられる解決策をいくつか思いつきましたが、どのように進めればよいかわかりません:

  1. の新しいモデルとコントローラーを作成し、friendly_id_table他のモデルの場合と同じように作業を行います
  2. destroy_slugスラッグを検索して破棄するアクションを追加しpages_controller.rbます - ただし、スラッグをロードする方法がわかりません。FriendlyId::Slug.find()
  3. 名前空間にコントローラーを作成しFriendlyIdます-これを行う方法がわかりません

続行するための最良の方法、または #2 または #3 を達成する方法として、誰でも提案できますか? ありがとう!

4

1 に答える 1

5

私は現在これを次のように実装しています:

# 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 %>
于 2012-07-08T15:18:30.517 に答える