Module: ManualSlug::ActiveRecord::ClassMethods

Defined in:
lib/manual_slug/active_record.rb

Instance Method Summary collapse

Instance Method Details

#manual_slug(field, options = {}, callback = true) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/manual_slug/active_record.rb', line 16

def manual_slug(field, options = {}, callback = true)
  friendly_id field, use: [:slugged, :finders]
  define_method(:should_generate_new_friendly_id?) do
    slug.blank?
  end

  skip_callback :validation, :before, :set_slug
  before_validation do
    if self.slug.blank?
      self.send(:set_slug)
    end
    true
  end if callback
end