Make your models feel like they are in high school again. This plugin retrieves the most frequently occurring values for each column. It adds methods of the form most_popular_[pluralized_column_name]. You can control how many results you get with the :limit option. The default limit is 5.
For example, lets say you have a Person model that has a name, age, and city.
class Person < ActiveRecord::Base
acts_as_most_popular
end
This will give you the methods:
For example, lets say you have six people in your database. Three are from Chicago, two from New York, and one from Hartford. Then, most_popular_cities will give you:
Person.most_popular_cities
=> ["chicago", "new york", "hartford"]
Each most_popular method returns an array of the type of the column. Check out this unit test for more examples.
Install with:
script/plugin install http://shanesbrain.net/svn/rails/plugins/acts_as_most_popular
Feedback appreciated.
Update: I can’t take credit for the name of this plugin. Someone on the #rubyonrails channel came up with it.
Update: The author of Ruby Inside suggests that this could be used as some sort of Calculation. I think it could easily be made a mode Calculation instead of an Acts As plugin, since popularity is basically the mode in decreasing order. What do you guys think?