Sha256: 4d857ef6e91644568f9ee4d8f28f327d0eb490cba65d4e6fd9ea0b5eab8ce18b
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
class Skyline::Tag < ActiveRecord::Base self.table_name = "skyline_tags" cattr_accessor :taggable_models before_validation :sanitize_tag class << self def taggable_content_models # lazy load all models in /app/models (not recursive) to find all Content models Dir.chdir(File.join(Rails.root, "app", "models")) do Dir.glob("*.rb").map{|f| f.sub(".rb","").camelcase.constantize} end (taggable_models || []).delete_if{|m| m.parents.include?(Skyline) } end def register_taggable_model(klass) self.taggable_models ||= [] self.taggable_models.delete_if{|c| c.to_s == klass.to_s } # Hack to remove stale object self.taggable_models << klass end def delete_unused_tags self.connection.execute("DELETE FROM #{self.table_name} WHERE id NOT IN (SELECT DISTINCT tag_id FROM #{Skyline::AssociatedTag.table_name})") end end protected def sanitize_tag self.tag = self.tag.to_s.strip.downcase if self.tag end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
skylinecms-3.3.0 | app/models/skyline/tag.rb |