Modified: trunk/vendor/plugins/acts_as_taggable_redux/lib/tagging.rb (2578 => 2579)
--- trunk/vendor/plugins/acts_as_taggable_redux/lib/tagging.rb 2011-03-15 16:23:42 UTC (rev 2578)
+++ trunk/vendor/plugins/acts_as_taggable_redux/lib/tagging.rb 2011-03-17 13:47:11 UTC (rev 2579)
@@ -1,8 +1,19 @@
class Tagging < ActiveRecord::Base
+
belongs_to :tag, :counter_cache => true
belongs_to :taggable, :polymorphic => true
belongs_to :user
-
+
+ validates_presence_of :tag
+ validates_presence_of :user
+ validates_presence_of :taggable
+
+ def before_validation
+ if taggable
+ return false unless taggable.respond_to?('add_tag')
+ end
+ end
+
# returns the 'last created' Taggings
# the maximum number of results is set by #limit#
def self.latest(limit=10)
@@ -14,4 +25,10 @@
def label
return tag.name if tag
end
+
+ def label=(label)
+ self.tag = Tag.find_by_name(label) if self.tag.nil?
+ self.tag = Tag.create(:name => label) if self.tag.nil?
+ end
end
+