Module: ActsAsTaggableOn::Tag
- Defined in:
- lib/acts_as_taggable_on_padrino/tag.rb
Defined Under Namespace
Modules: ClassMethods, InstanceMethods
Instance Method Summary collapse
Instance Method Details
#acts_as_tag(opts = {}) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/acts_as_taggable_on_padrino/tag.rb', line 3 def acts_as_tag(opts = {}) opts.assert_valid_keys :tagging tagging_class_name = opts[:tagging] || 'Tagging' class_eval do attr_accessible :name ### ASSOCIATIONS: has_many :taggings, :dependent => :destroy, :class_name => tagging_class_name ### VALIDATIONS: validates_presence_of :name validates_uniqueness_of :name ### SCOPES: scope :named, lambda {|name| where(["name #{ActsAsTaggableOn.like_operator} ?", name]) } scope :named_any, lambda {|list| where(list.map { |tag| sanitize_sql(["name #{ActsAsTaggableOn.like_operator} ?", tag.to_s]) }.join(" OR ")) } scope :named_like, lambda {|name| where(["name #{ActsAsTaggableOn.like_operator} ?", "%#{name}%"]) } scope :named_like_any, lambda {|list| where(list.map { |tag| sanitize_sql(["name #{ActsAsTaggableOn.like_operator} ?", "%#{tag.to_s}%"]) }.join(" OR ")) } end include ActsAsTaggableOn::Tag::InstanceMethods extend ActsAsTaggableOn::Tag::ClassMethods end |