sanedragon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
2007-Jan-18 10:59 UTC
bug? found by way of counter_cache/default bug
I decided that I wanted tags with counts on my custom rails blog (shameless plug: http://rorek.org/blog/ ), so I perhaps ill-advisedly commenced editing the acts_as_taggable plugin in place. I ran up against a bug: the :default for the taggings_count field apparently wasn''t working, and was set to nil for new tags. Continuing on my spate of perhaps ill-advised behavior, I decided to try to work around the problem like so (with extra p''s to display the weird behavior): added to vendor/plugins/acts_as_taggable/tag.rb: def before_save # XXX I should really find out why :default doesn''t work if taggings_count_before_type_cast.nil? p taggings_count p taggings_count_before_type_cast n = Tagging.count(:conditions => [''tag_id = ?'', self.id]) taggings_count = n p n p self.id p taggings_count p taggings_count_before_type_cast end end>> Tag.find(:all, :conditions => ''taggings_count is NULL'').each{|t|t.save}1 nil 1 42 1 nil => [#<Tag:0x99c09c4 @taggings=[#<Tagging:0x99b9bd8 @attributes={"tag_id"=>"42", "id"=>"202", "taggable_type"=>"Post", "taggable_id"=>"18"}>], @errors=#<ActiveRecord::Errors:0x99bf2cc @base=#<Tag:0x99c09c4 ...>, @errors={}>, @attributes={"name"=>"software", "taggings_count"=>nil, "id"=>"42"}, @new_record_before_save=nil>] I tried a number of incarnations of this method, calling it validate, and after_save with a save at the end. nothing worked. Happily, my string of ill-advised behavior ended and I updated to the newest edge rails, 5982. This fixed the original problem, and now new tags are created with the correct taggings_count. However, it seems to me that this should work to fix the data, and yet it doesn''t. Why''s that? Dag --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---