我正在将friendly_id
与history
模块一起用于名为page
的模型,并且希望能够从friendly_id_slugs
表中删除slugs,以便它们不再存在重定向,可以再次使用。
我想出了几个可能的解决方案,但我不确定如何继续:
friendly_id_table
创建一个新模型和控制器,并按照我对其他任何模型的方式执行操作destroy_slug
添加一个pages_controller.rb
动作,查找slug并将其销毁 - 但是,我不确定如何加载slug,也许FriendlyId::Slug.find()
FriendlyId
命名空间中创建一个控制器 - 不知道如何执行此操作任何人都可以提出建议作为继续或如何完成#2或#3的最佳方式吗?谢谢!
答案 0 :(得分: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 %>