Module: Slugged::ActiveRecordMethods

Defined in:
lib/slugged/active_record_methods.rb

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Constant Summary collapse

AR_CLASS_ATTRIBUTE_NAMES =
%w(cached_slug_column slug_source slug_convertor_proc default_uuid_slug use_slug_history sync_slugs slug_scope use_slug_cache use_slug_to_param editable).map(&:to_sym)

Instance Method Summary collapse

Instance Method Details

#is_sluggable(source = :name, options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/slugged/active_record_methods.rb', line 5

def is_sluggable(source = :name, options = {})
  options.symbolize_keys!
  class_attribute *AR_CLASS_ATTRIBUTE_NAMES
  attr_accessor   :found_via_slug
  # Load extensions
  extend  ClassMethods
  include InstanceMethods
  extend Slugged::Scopes
  extend Slugged::Finders
  self.slug_source = source.to_sym
  set_slug_options options
  alias_method :to_param, :to_slug      if use_slug_to_param
  include Slugged::SlugHistory if use_slug_history
  include Slugged::Caching     if use_slug_cache
  before_save :autogenerate_slug
end