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
-~----------~----~----~----~------~----~------~--~---