module JulienSluggable::InstanceMethods

Public Instance Methods

generate_slug() click to toggle source
# File lib/julien-sluggable.rb, line 11
def generate_slug
  slug = self.send(self.class::SLUG_BASE)
  slug = slug.gsub(' ', '_').gsub(/\W/, '').downcase

  unless self.class.find_by(slug: slug).nil?
    num = 1
    until self.class.find_by(slug: "#{slug}-#{num}").nil?
      num += 1
    end
    slug = "#{slug}-#{num}"
  end

  self.slug = slug
end
to_param() click to toggle source
# File lib/julien-sluggable.rb, line 26
def to_param
  self.slug
end