From b6e8dd93b1d6f5a6df62c6125e5bf8c61a4eb985 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sun, 8 Jan 2023 21:49:25 -0800 Subject: [PATCH] Add party validation and inverse to GridObject associations --- app/models/grid_character.rb | 5 ++++- app/models/grid_summon.rb | 5 ++++- app/models/grid_weapon.rb | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/models/grid_character.rb b/app/models/grid_character.rb index e60bcf9..b6bb12e 100644 --- a/app/models/grid_character.rb +++ b/app/models/grid_character.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true class GridCharacter < ApplicationRecord - belongs_to :party + belongs_to :party, + counter_cache: :weapons_count, + inverse_of: :characters + validates_presence_of :party validate :awakening_level, on: :update validate :transcendence, on: :update diff --git a/app/models/grid_summon.rb b/app/models/grid_summon.rb index 9857a9b..565a708 100644 --- a/app/models/grid_summon.rb +++ b/app/models/grid_summon.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true class GridSummon < ApplicationRecord - belongs_to :party + belongs_to :party, + counter_cache: :weapons_count, + inverse_of: :summons + validates_presence_of :party def summon Summon.find(summon_id) diff --git a/app/models/grid_weapon.rb b/app/models/grid_weapon.rb index 98c35cc..72d93cc 100644 --- a/app/models/grid_weapon.rb +++ b/app/models/grid_weapon.rb @@ -2,7 +2,9 @@ class GridWeapon < ApplicationRecord belongs_to :party, - counter_cache: :weapons_count + counter_cache: :weapons_count, + inverse_of: :weapons + validates_presence_of :party belongs_to :weapon_key1, class_name: 'WeaponKey', foreign_key: :weapon_key1_id, optional: true belongs_to :weapon_key2, class_name: 'WeaponKey', foreign_key: :weapon_key2_id, optional: true @@ -29,6 +31,8 @@ class GridWeapon < ApplicationRecord return unless weapon.limit party.weapons.find do |party_weapon| + return unless party_weapon.id + id_match = weapon.id == party_weapon.id series_match = weapon.series == party_weapon.weapon.series both_opus_or_draconic = weapon.opus_or_draconic? && party_weapon.weapon.opus_or_draconic?