module RailheadPermalink::ClassMethods
Public Instance Methods
auto_permalink(field, options = {})
click to toggle source
# File lib/railhead_permalink.rb, line 27 def auto_permalink(field, options = {}) include RailheadPermalink::InstanceMethods class << self alias_method :find_without_permalink, :find alias_method :find, :find_with_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
find_with_permalink(*args)
click to toggle source
# File lib/railhead_permalink.rb, line 47 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