Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Avoid updating timestamp when updating counter_cache.

  • Loading branch information...
commit 9104ddb7b784d0c4cd40d6942232ad57866ca2ce 1 parent b6c67f2
Asif S Kalam authored
View
3  app/models/impressionist/impressionable.rb
@@ -38,7 +38,8 @@ def update_impressionist_counter_cache
cache_options = self.class.impressionist_counter_cache_options
column_name = cache_options[:column_name].to_sym
count = cache_options[:unique] ? impressionist_count(:filter => :ip_address) : impressionist_count
- update_attribute(column_name, count)
+ old_count = send(column_name) || 0
+ self.class.update_counters(id, column_name => (count - old_count))
end
# OLD METHODS - DEPRECATE IN V0.5
View
7 test_app/spec/models/counter_caching_spec.rb
@@ -38,6 +38,13 @@
@widget.reload
}.should change(@widget, :impressions_count).from(0).to(1)
end
+
+ it "should not update the timestamp on the impressable" do
+ lambda {
+ @widget.impressions.create(:request_hash => 'abcd1234')
+ @widget.reload
+ }.should_not change(@widget, :updated_at)
+ end
end
end
Please sign in to comment.
Something went wrong with that request. Please try again.