Итак, у меня есть after_save ловушка для обзора модели, которая вызывает Calculate_Specific_rating функции модели продукта. Функция выглядит следующим образом:
def calculate_specific_rating
ratings = reviews.reload.all.pluck(:rating)
specific_rating = Hash.new(0)
ratings.each { |rating| specific_rating[rating] += 1 }
self.specific_rating = specific_rating
save
end
Сейчас она возвращает
specific_rating => {
"2"=> 3, "4"=> 1
}
Я хочу, чтобы она возвращалась следующим образом:
specific_rating => {
"1"=> 0, "2"=>3, "3"=>0, "4"=>1, "5"=>0
}
Кроме того, все в порядке инициализировать новый ха sh при каждом сохранении обзора? Я хочу альтернативу. Спасибо