Sha256: 5390f44355c86a426232d0b4abbfb2223029de02c2684cb5bc2e85904c7d2171
Contents?: true
Size: 780 Bytes
Versions: 18
Compression:
Stored size: 780 Bytes
Contents
module ManualSlug extend ActiveSupport::Concern include Mongoid::Slug def text_slug self._slugs.empty? ? '' : self._slugs.last end def text_slug=(slug) if slug.blank? self._slugs = [] else self._slugs.delete(slug) self._slugs << slug end end module ClassMethods def manual_slug(field, options = {}, callback = true) options.merge!(permanent: true, history: true) slug field, options # we will create slugs manually when needed skip_callback :create, :before, :build_slug before_validation do self._slugs = self._slugs.map{ |s| s.strip }.select {|s| !s.blank? } if self._slugs.empty? self.build_slug end true end if callback end end end
Version data entries
18 entries across 18 versions & 2 rubygems