friendly_id,用历史记录更新slug

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

我使用friendly_id如下:

class Page < ActiveRecord::Base
  extend FriendlyId
  friendly_id :title, :use => [:slugged, :history]
end
Run Code Online (Sandbox Code Playgroud)

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

有没有直接的方法来使用friendly_id或我需要与历史表进行交互?

谢谢!

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

现在,在保存时,如果url_seed已设置,则friendly_id使用自定义URL文本来设置URL.奇迹般有效 :)