If you want to have slugs that are refreshed (updated) each time you change corresponding field in your ActiveRecord models, put this at the end of your initializers/friendly_id.rb file:
module FriendlyId module Slugged def should_generate_new_friendly_id? return true if send(friendly_id_config.slug_column).nil? && !send(friendly_id_config.base).nil? change = :"#{friendly_id_config.base}_changed?" return true if respond_to?(change) && send(change) false end end end
This will update slug each time related column (friendly_id_config.base) has changed. Keep in mind, that this method won't work if you use non-column slug method as a base for friendly ids, since it uses ActiveRecord::Dirty interface.
Leave a Reply