Question

I am trying to use the friendly_id gem to generate a slug in the format of "#{id}-#{title}"

It looks like friendly_id uses before_save, and won't have access to the ID attribute.

Is there a work around for this ?

# Permalinks
#-----------------------------------------------------------------------------
extend FriendlyId
friendly_id :id_and_title, :use => :slugged

def id_and_title
  "#{id} #{title}"
end
Was it helpful?

Solution

Instead of using friendly_id for this, you could override to_param in your model, to include the title

class YourModel < ActiveRecord::Base
  def to_param
    "#{id} #{title}".parameterize
  end
end

This should have the effect you're after without having to use friendly_id.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top