Module: IsRateable::ActsAsRateable::ClassMethods

Defined in:
lib/is_rateable/acts_as_rateable.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_rateable(options = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/is_rateable/acts_as_rateable.rb', line 9

def acts_as_rateable(options = {})
  include IsRateable::ActsAsRateable::LocalInstanceMethods

  has_many :ratee_ratings, as: :ratee, class_name: 'IsRateable::Rating'

  def with_minimum_rating(rating)
    joins(:ratee_ratings).merge(Rating.group(:ratee_id, :ratee_type).having('AVG(score) >= ?', rating)).group("#{self.table_name}.id")
  end
end

#with_minimum_rating(rating) ⇒ Object



14
15
16
# File 'lib/is_rateable/acts_as_rateable.rb', line 14

def with_minimum_rating(rating)
  joins(:ratee_ratings).merge(Rating.group(:ratee_id, :ratee_type).having('AVG(score) >= ?', rating)).group("#{self.table_name}.id")
end