friendly_id,用历史记录更新slug

时间:2012-07-06 02:48:29

标签: ruby-on-rails friendly-id

我正在使用friendly_id,如下所示:

class Page < ActiveRecord::Base
  extend FriendlyId
  friendly_id :title, :use => [:slugged, :history]
end

我希望能够设置slug(即能够设置自定义URL),而无需更改标题并在历史记录中保留旧标记。

是否有使用friendly_id执行此操作的简单方法,还是需要与历史记录表进行交互?

谢谢!

1 个答案:

答案 0 :(得分:5)

我通过添加实例属性url_seed来完成此任务:

class Page < ActiveRecord::Base
  extend FriendlyId
  friendly_id :slug_for_url, :use => [:slugged, :history]

  attr_accessible :title, :url_seed
  attr_accessor :url_seed

  def slug_for_url
    self.url_seed.blank? ? self.title : self.url_seed
  end
end

现在,在保存时,如果设置了url_seedfriendly_id会使用自定义网址文字来设置网址。像魅力一样工作:)