module Namekuji::ClassMethods
Public Instance Methods
sluggable(options = {})
click to toggle source
Takes the field name passed in the ‘:on_field` option (or the output of the model’s ‘to_s` method), parameterizes it, and saves it in the field name passed in the `:slug_field` option (or the `slug` field).
# File lib/namekuji/class_methods.rb, line 6 def sluggable(options = {}) cattr_accessor :sluggable_field, :slug_field self.sluggable_field = (options[:on_field] || :to_s).to_s self.slug_field = (options[:slug_field] || :slug).to_s before_validation :slugify validates self.slug_field.to_sym, presence: true, uniqueness: true, format: { with: %r{\A[0-9a-z-]+\Z}, message: "may only contain lowercase letters (a-z), numbers (0-9), and dashes (-)" } include Namekuji::Sluggable end