mirror of
https://github.com/iritmaximus/brewery.git
synced 2026-10-12 19:13:49 +03:00
upto 2.15
This commit is contained in:
+2
-8
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user