From 8fb5db0025497fd24a6d7a4ef7674ae19c85d6b8 Mon Sep 17 00:00:00 2001 From: Aaro Koivukangas Date: Thu, 10 Aug 2023 18:09:01 +0300 Subject: [PATCH] added validation for models --- app/models/beer.rb | 2 ++ app/models/brewery.rb | 5 +++++ app/models/rating.rb | 5 +++++ app/models/user.rb | 2 ++ 4 files changed, 14 insertions(+) diff --git a/app/models/beer.rb b/app/models/beer.rb index 4cafe00..ea88af8 100644 --- a/app/models/beer.rb +++ b/app/models/beer.rb @@ -4,6 +4,8 @@ class Beer < ApplicationRecord belongs_to :brewery has_many :ratings, dependent: :destroy + validates :name, presence: true + def to_s "#{name}, #{(Brewery.find_by_id brewery_id).name}" end diff --git a/app/models/brewery.rb b/app/models/brewery.rb index cc722c9..33a20d2 100644 --- a/app/models/brewery.rb +++ b/app/models/brewery.rb @@ -4,6 +4,11 @@ class Brewery < ApplicationRecord has_many :beers, dependent: :destroy has_many :ratings, through: :beers + validates :name, presence: true + validates :year, numericality: { greater_than_or_equal_to: 1040, + less_than_or_equal_to: 2023, + only_integer: true + } def print_report puts name puts "established at year #{year}" diff --git a/app/models/rating.rb b/app/models/rating.rb index 72ff266..71c8bfe 100644 --- a/app/models/rating.rb +++ b/app/models/rating.rb @@ -2,6 +2,11 @@ class Rating < ApplicationRecord belongs_to :beer belongs_to :user + validates :score, numericality: { greater_than_or_equal_to: 1, + less_than_or_equal_to: 50, + only_integer: true + } + def to_s "#{beer.name}: #{score}" end diff --git a/app/models/user.rb b/app/models/user.rb index 6a04d45..6284f77 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,5 +1,7 @@ class User < ApplicationRecord include RatingAverage + validates :username, uniqueness: true, length: { minimum: 3, maximum: 30 } + has_many :ratings end