upto 2.15

This commit is contained in:
Aaro Koivukangas
2023-08-08 14:52:03 +03:00
parent 752bbfa59f
commit 837f739992
3 changed files with 45 additions and 33 deletions
+2 -8
View File
@@ -1,15 +1,9 @@
class Beer < ApplicationRecord
include RatingAverage
belongs_to :brewery
has_many :ratings, dependent: :destroy
def average_rating
average = 0
self.ratings.each do |rating|
average += rating.score
end
return average
end
def to_s
"#{self.name}, #{(Brewery.find_by_id self.brewery_id).name}"
end
+2 -25
View File
@@ -1,4 +1,6 @@
class Brewery < ApplicationRecord
include RatingAverage
has_many :beers, dependent: :destroy
has_many :ratings, through: :beers
@@ -12,29 +14,4 @@ class Brewery < ApplicationRecord
self.year = 2023
puts "changed year to #{2023}"
end
def average_rating
total_score = 0
count = self.count_ratings
if count == 0
return 0
end
self.beers.each do |beer|
beer.ratings.each do |rating|
total_score += rating.score
end
end
return total_score / count
end
def count_ratings
count = 0
self.beers.each do |beer|
count += beer.ratings.count
end
return count
end
end
+41
View File
@@ -0,0 +1,41 @@
module RatingAverage
extend ActiveSupport::Concern
def average_rating
total_score = 0
count = 0
if defined? self.beers
beers = self.beers
else
beers = self
end
beers.each do |beer|
count += beer.ratings.count
beer.ratings.each do |rating|
total_score += rating.score
end
end
if count == 0
return 0
end
return total_score / count
end
def count_ratings
if defined? self.beers
beers = self.beers
else
beers = self
end
count = 0
beers.each do |beer|
count += beer.ratings.count
end
return count
end
end