Acts_as_rateable is a plugin released under the MIT license. It makes activerecord models rateable through a polymorphic association and optionally logs which user rated which model. In this case, one user can rate an object once. Used on cotcot.hu for article rating, sponsored quizzes, etc.
A ‘free text’ attribute has been added to the pure numerical rating. The ‘free text’ serves as the user’s rating description or comment.
A ‘name’ attribute has been added to the rating so that multiple ratings per model is now supported.
You can easily install gem by adding this line into your Gemfile:
gem "acts_as_rateable", :git => "git://github.com/anton-zaytsev/acts_as_rateable.git"
After you install Acts As Rateable and add it to your Gemfile, you need to run the generator:
rails generate acts_as_rateable
The generator will add new migration, that’s why the next is run migration:
rake db:migrate
Now insert ‘acts_as_rateable’ into your model, and don’t forget restart your application.
class Post < ActiveRecord::Base acts_as_rateable end
Now you can rate it ( 1-# )or calculate the average rating.
# rate for selected post @post.rate_it( 4, current_user ) #=> true || false @post.rate_it( 4, current_user, 'Relevance') # average rating of selected post @post.average_rating #=> 4.0 @post.average_rating_round #=> 4 @post.average_rating_percent #=> 80 # check if selected post rated by user @post.rated_by?( current_user ) #=> instance of rating model || false @post.parse_ratings(:json) #=> JSON formatted string containing the post's ratings # find posts with rating '4' Post.find_average_of( 4 ) #=> array
See lib/acts_as_rateable.rb for further details!
# Notes
Jinzhu - generator is compatible with rails 3.
Copyright © 2011 Anton Zaytsev, antonzaytsev.com , released under the MIT license
Copyright © 2007-2010 Ferenc Fekete, feketeferenc.hu , released under the MIT license
Copyright © 2011 Joerg Polakowski, mobile-melting.de , released under the MIT license