diff --git a/app/models/client.rb b/app/models/client.rb index 8dde180..9a04d51 100644 --- a/app/models/client.rb +++ b/app/models/client.rb @@ -3,8 +3,8 @@ class Client < ApplicationRecord has_many :owner_subprojects, class_name: 'Subproject', foreign_key: 'owner_id' has_many :builder_subprojects, class_name: 'Subproject', foreign_key: 'builder_id' - validates :company_name, :firstname, :lastname, presence: true - validates :email, presence: true, uniqueness: true + validates :company_name, :firstname, :lastname, :email, presence: true + validates :email, uniqueness: true def referenced_count owner_subprojects.count + builder_subprojects.count + client_subprojects.count diff --git a/app/models/subproject.rb b/app/models/subproject.rb index c943d2d..8b17504 100644 --- a/app/models/subproject.rb +++ b/app/models/subproject.rb @@ -14,6 +14,8 @@ class Subproject < ApplicationRecord validate :owner_presence_check validate :builder_presence_check + validates_associated :client, :owner, :builder + def client_attributes=(attributes) self.client = Client.find_or_initialize_by(email: attributes[:email]) self.client.assign_attributes(attributes)