Module: SelfRateable::Core::InstanceMethods::Likes
- Defined in:
- lib/self_rateable/core/instance_methods.rb
Instance Method Summary collapse
Instance Method Details
#like(rater) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/self_rateable/core/instance_methods.rb', line 12 def like(rater) rater.present? ? rate = .where(rater_id: rater.id).first : raise('Rater object is incorrect.') if rate.present? # unlike if already rated liked_by_rater?(rater) ? .where(rater_id: rater.id).delete_all : rate. += 1 rate.save! else #create new record if not yet rated << SelfRateable::Rating.new(rating: 1, rater_id: rater.try(:id)) end self.save! end |
#liked_by_rater?(rater) ⇒ Boolean
8 9 10 |
# File 'lib/self_rateable/core/instance_methods.rb', line 8 def liked_by_rater?(rater) .where(:rater_id => rater.id).count > 0 end |
#likes ⇒ Object
4 5 6 |
# File 'lib/self_rateable/core/instance_methods.rb', line 4 def likes .sum(:rating).to_f end |