Sha256: 597be286cd4108421da580332b77fcc3d0d9c0dbb7da115704a4b4ede56bac77
Contents?: true
Size: 802 Bytes
Versions: 62
Compression:
Stored size: 802 Bytes
Contents
module ManualSlug::Mongoid 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 }.reject {|s| s.blank? } if self._slugs if self._slugs.blank? self.build_slug end true end if callback end end end
Version data entries
62 entries across 62 versions & 2 rubygems