From 70e820b781884792b0f3d9b485a0d01d24e485a1 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sun, 9 Jul 2023 22:38:01 -0700 Subject: [PATCH] Grid model object updates * Adds has_one association to canonical objects * GridWeapon is_mainhand refactored * GridCharacter add_awakening refactored --- app/models/grid_character.rb | 8 +++++--- app/models/grid_summon.rb | 2 ++ app/models/grid_weapon.rb | 8 +++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/models/grid_character.rb b/app/models/grid_character.rb index 09d6e8d..6fc5783 100644 --- a/app/models/grid_character.rb +++ b/app/models/grid_character.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class GridCharacter < ApplicationRecord + has_one :object, class_name: 'Character', foreign_key: :id, primary_key: :character_id + belongs_to :awakening, optional: true belongs_to :party, counter_cache: :characters_count, @@ -87,9 +89,9 @@ class GridCharacter < ApplicationRecord private def add_awakening - if self.awakening.nil? - self.awakening = Awakening.where(slug: "character-balanced").sole - end + return unless awakening.nil? + + self.awakening = Awakening.where(slug: 'character-balanced').sole end def check_value(property, type) diff --git a/app/models/grid_summon.rb b/app/models/grid_summon.rb index c62a33b..f2a1afc 100644 --- a/app/models/grid_summon.rb +++ b/app/models/grid_summon.rb @@ -5,6 +5,7 @@ class GridSummon < ApplicationRecord counter_cache: :summons_count, inverse_of: :summons validates_presence_of :party + has_one :object, class_name: 'Summon', foreign_key: :id, primary_key: :summon_id validate :compatible_with_position, on: :create validate :no_conflicts, on: :create @@ -23,6 +24,7 @@ class GridSummon < ApplicationRecord party.summons.find do |grid_summon| return unless grid_summon.id + grid_summon if summon.id == grid_summon.summon.id end end diff --git a/app/models/grid_weapon.rb b/app/models/grid_weapon.rb index 459e450..ab8e3fd 100644 --- a/app/models/grid_weapon.rb +++ b/app/models/grid_weapon.rb @@ -6,6 +6,8 @@ class GridWeapon < ApplicationRecord inverse_of: :weapons validates_presence_of :party + has_one :object, class_name: 'Weapon', foreign_key: :id, primary_key: :weapon_id + 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 belongs_to :weapon_key3, class_name: 'WeaponKey', foreign_key: :weapon_key3_id, optional: true @@ -78,10 +80,6 @@ class GridWeapon < ApplicationRecord # Checks if the weapon should be a mainhand before saving the model def is_mainhand - if self.position == -1 - self.mainhand = true - else - self.mainhand = false - end + self.mainhand = position == -1 end end