# Rating Plugin

**URL:** <https://www.ruby-forum.com/t/rating-plugin/190474>\
**Category:** Rails\
**Created:** [June 21, 2010, 8:00am UTC](https://www.ruby-forum.com/t/rating-plugin/190474 "2010-06-21T08:00:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![charanya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/b5e925/32.png) [@charanya](https://www.ruby-forum.com/u/charanya)\
**Post date:** [June 21, 2010, 8:00am UTC](https://www.ruby-forum.com/t/rating-plugin/190474/1 "2010-06-21T08:00:42Z")

</div>

Hi,

I wanna rate an object on multiple criteria  
Like…  
Benefits  
Applicability

etc…

So i would want the user to rate an object on 2 criteria.  
Is there any plugin which will suit my need.Acts\_as\_rateable allows only  
rating on a single context…

Thanks In Advance…

Charanya N.

---

<div class="post-metadata">

**Author:** ![charanya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/b5e925/32.png) [@charanya](https://www.ruby-forum.com/u/charanya)\
**Post date:** [June 22, 2010, 1:58am UTC](https://www.ruby-forum.com/t/rating-plugin/190474/2 "2010-06-22T01:58:28Z")

</div>

I think you will have to modify a plugin manually, I don’t know a plugin  
that does it automatically. But it shouldn’t be hard.

---

<div class="post-metadata">

**Author:** ![charanya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/b5e925/32.png) [@charanya](https://www.ruby-forum.com/u/charanya)\
**Post date:** [June 22, 2010, 8:37am UTC](https://www.ruby-forum.com/t/rating-plugin/190474/3 "2010-06-22T08:37:52Z")

</div>

Hi,

As Philipe mentioned you have to modify the plugin little bit to match  
your requirement.

Lets say you are using acts\_as\_ratable plugin, so they will use rate  
column to specify the rate.

You just add few more columns like benefit\_rate, applicability\_rate,  
quality\_rate and what ever you want.

So in your rate method, you need to modify it little bit.

From this:

@post.rate( 4, current\_user.id )

def rate(rating\_value, user\_id)  
r = Rate.new  
r.rate = rating\_value  
r.rateable = self  
r.user\_id = user\_id  
r.save  
end

To this:

@post.rate( 4, 5, current\_user.id )

def rate(benefit\_rating, quality\_rating, user\_id)  
r = Rate.new  
r.benefit\_rating = benefit\_rating  
r.quality\_rating = quality\_rating  
r.rate = r.benefit\_rating + r.quality\_rating  
r.rateable = self  
r.user\_id = user\_id  
r.save  
end

Just your getting rating values for benefit\_rating and quality\_rating.  
And also you can save the sum of benefit\_rating and quality\_rating in  
rate column.

Hope this will work for you

Regards,  
T.Veeraa.
