diff --git a/app/models/recipe.rb b/app/models/recipe.rb index ada1cf0..251e946 100644 --- a/app/models/recipe.rb +++ b/app/models/recipe.rb @@ -127,8 +127,14 @@ class Recipe < Ingredient end def update_rating! - self.rating = Log.for_recipe(self).for_user(self.user_id).where('rating IS NOT NULL').average(:rating) - save(validate: false) + logs = Log.for_recipe(self).for_user(self.user_id).where('rating IS NOT NULL') + if logs.count > 0 + self.rating = logs.average(:rating) + save(validate: false) + else + self.rating = nil + end + self.rating end # Creates a copy of this recipe suitable for associating to a log diff --git a/spec/lib/unit_conversion/parsed_number_spec.rb b/spec/lib/unit_conversion/parsed_number_spec.rb index 7e44015..64baf6b 100644 --- a/spec/lib/unit_conversion/parsed_number_spec.rb +++ b/spec/lib/unit_conversion/parsed_number_spec.rb @@ -11,11 +11,11 @@ RSpec.describe UnitConversion::ParsedNumber do end it 'converts decimal numbers' do - expect(UnitConversion::ParsedNumber.new('1.0').value).to eq BigDecimal.new("1") - expect(UnitConversion::ParsedNumber.new('-1.0').value).to eq BigDecimal.new("-1") - expect(UnitConversion::ParsedNumber.new('54.33').value).to eq BigDecimal.new("54.33") - expect(UnitConversion::ParsedNumber.new('-54.33').value).to eq BigDecimal.new("-54.33") - expect(UnitConversion::ParsedNumber.new('.33').value).to eq BigDecimal.new("0.33") + expect(UnitConversion::ParsedNumber.new('1.0').value).to eq BigDecimal("1") + expect(UnitConversion::ParsedNumber.new('-1.0').value).to eq BigDecimal("-1") + expect(UnitConversion::ParsedNumber.new('54.33').value).to eq BigDecimal("54.33") + expect(UnitConversion::ParsedNumber.new('-54.33').value).to eq BigDecimal("-54.33") + expect(UnitConversion::ParsedNumber.new('.33').value).to eq BigDecimal("0.33") end it 'converts simple fractions' do