friendly_id,从历史中删除slug

Jay*_*Jay 3 activerecord ruby-on-rails friendly-id

我使用friendly_idhistory一个名为模型模块page,并希望能够从删除蛞蝓friendly_id_slugs表,使他们不再重定向,可以再次使用.

我想出了几个可能的解决方案,但我不确定如何继续:

  1. friendly_id_table为任何其他模型创建一个新的模型和控制器,并执行操作
  2. 添加一个destroy_slug动作来pages_controller.rb查找slug并将其摧毁 - 但是,我不确定如何加载slug,也许FriendlyId::Slug.find()
  3. FriendlyId命名空间中创建一个控制器- 不知道如何执行此操作

任何人都可以提出建议作为进行或如何完成#2或#3的最佳方式吗?谢谢!

Jay*_*Jay 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 %>
Run Code Online (Sandbox Code Playgroud)