This particular stone has a cache migration that you can also trigger.
https://github.com/ryanto/acts_as_votable#caching
class AddCachedVotesToPosts < ActiveRecord::Migration def self.up add_column :posts, :cached_votes_total, :integer, :default => 0 add_column :posts, :cached_votes_score, :integer, :default => 0 add_column :posts, :cached_votes_up, :integer, :default => 0 add_column :posts, :cached_votes_down, :integer, :default => 0 add_index :posts, :cached_votes_total add_index :posts, :cached_votes_score add_index :posts, :cached_votes_up add_index :posts, :cached_votes_down # Uncomment this line to force caching of existing votes # Post.find_each(&:update_cached_votes) end def self.down remove_column :posts, :cached_votes_total remove_column :posts, :cached_votes_score remove_column :posts, :cached_votes_up remove_column :posts, :cached_votes_down end end
My suggestion was to create a new migration with sample code and use it to sort.
Once you have created this migration, you can sort it by one of the following columns:
http://guides.rubyonrails.org/active_record_querying.html#ordering
For instance:
<% Post.order(:cached_votes_up).each do |post| %> ... html goodness here ... <% end %>
This will sort by the number of votes.
source share