Extending ActiveRecord with count_since
I just implemented a statistics page for an application and found that I was using this pattern over and over again:
User.count(:conditions => ['created_at > ?', 30.days.ago])
Here’s a simple extension I made to ActiveRecord to DRY it up:
module ActiveRecord class Base def self.count_since(time_ago) count(:conditions => ['created_at > ?', time_ago]) end end end
Put that snippet in a file in your lib directory. I called mine rails_extensions.rb. Then add require ‘rails_extensions’ to the bottom of your environment.rb file.
Now you can just do:
User.count_since(30.days.ago)
That’s a little cleaner, don’t you think?
