Sha256: ca544c3d59b7a5c9f873b790c1dc79b30dabc28d49054bc4bde8814953d3d340
Contents?: true
Size: 698 Bytes
Versions: 1
Compression:
Stored size: 698 Bytes
Contents
class Models::Item attr_writer :slug def slug @slug ||= generate_slug end before_create :slug assign :slug, String, true rad.extension :item_slug, self do validates_uniqueness_of :slug end validates_format_of :slug, with: /^[0-9a-z\-]+$/ validates_presence_of :slug def self.by_param! param by_param(param) || raise(Mongo::NotFound, "object with slug #{param} not found!") end def self.by_param param self.by_slug(param) || (BSON::ObjectId.legal?(param) && self.by_id(param)) end protected def generate_slug "#{name.blank? ? String.random(6) : name.to_url[0..50]}-#{String.random}" #UUIDTools::UUID.random_create.hexdigest[0,6] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rad_kit-0.0.10 | app/models/_item/slug.rb |