Module: RailheadPermalink::ClassMethods

Defined in:
lib/railhead_permalink.rb

Instance Method Summary collapse

Instance Method Details



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

def auto_permalink(field, options = {})
  include RailheadPermalink::InstanceMethods
  class << self
    alias_method_chain :find, :permalink
  end
  class_attribute :permalink_options

  self.permalink_options = {
    field: field,
    keep_existing: (options[:keep_existing] || false),
    reserved_names: (options[:reserved_names] || []),
    unique: (options[:unique] || false)
  }

  before_save :create_permalink
  validates_presence_of field
  validates_uniqueness_of field, case_sensitive: false, if: "#{field}_changed?".to_sym if permalink_options[:unique]
end


46
47
48
49
50
51
52
53
# File 'lib/railhead_permalink.rb', line 46

def find_with_permalink(*args)
  key = args.first
  if key.is_a?(String)
    find_by(permalink: key) || find_without_permalink(*args)
  else
    find_without_permalink(*args)
  end
end