Module: Sluggable

Extended by:
ActiveSupport::Concern
Defined in:
lib/sluggable_rw.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#generate_slug(number = 0) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/sluggable_rw.rb', line 26

def generate_slug(number=0)
  if number == 0
    slug = self.send(slug_base).gsub(/['`]/, "").parameterize
  else
    slug = self.send(slug_base).gsub(/['`]/, "").parameterize
    slug = "#{slug}-#{number}"
  end

  obj = self.class.find_by(slug: slug)

  if obj && obj != self
    number += 1
    self.generate_slug(number)
  else
    self.slug = slug
  end
end

#slug_baseObject



22
23
24
# File 'lib/sluggable_rw.rb', line 22

def slug_base
  self.class.slug_column.to_sym
end

#to_paramObject



18
19
20
# File 'lib/sluggable_rw.rb', line 18

def to_param
  self.slug
end