1
0
Fork 0

Add association Relationship#status

This commit is contained in:
Alex Kotov 2019-09-29 02:21:34 +05:00
parent 5a7fe84b0b
commit 3076912768
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
5 changed files with 38 additions and 2 deletions

View File

@ -5,6 +5,8 @@ class Relationship < ApplicationRecord
# Associations #
################
belongs_to :status, class_name: 'RelationStatus'
belongs_to :person, inverse_of: :all_relationships
belongs_to :regional_office

View File

@ -0,0 +1,10 @@
# frozen_string_literal: true
class AddStatusToRelationships < ActiveRecord::Migration[6.0]
def change
# rubocop:disable Rails/NotNullColumn
add_reference :relationships, :status, null: false
add_foreign_key :relationships, :relation_statuses, column: :status_id
# rubocop:enable Rails/NotNullColumn
end
end

View File

@ -719,7 +719,8 @@ CREATE TABLE public.relationships (
person_id bigint NOT NULL,
regional_office_id bigint NOT NULL,
initiator_account_id bigint,
from_date date NOT NULL
from_date date NOT NULL,
status_id bigint NOT NULL
);
@ -1364,6 +1365,13 @@ CREATE UNIQUE INDEX index_relationships_on_person_id_and_from_date ON public.rel
CREATE INDEX index_relationships_on_regional_office_id ON public.relationships USING btree (regional_office_id);
--
-- Name: index_relationships_on_status_id; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_relationships_on_status_id ON public.relationships USING btree (status_id);
--
-- Name: index_sessions_on_account_id; Type: INDEX; Schema: public; Owner: -
--
@ -1521,6 +1529,14 @@ ALTER TABLE ONLY public.regional_offices
ADD CONSTRAINT fk_rails_7a6d5fdd9a FOREIGN KEY (federal_subject_id) REFERENCES public.federal_subjects(id);
--
-- Name: relationships fk_rails_87a7339f1f; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.relationships
ADD CONSTRAINT fk_rails_87a7339f1f FOREIGN KEY (status_id) REFERENCES public.relation_statuses(id);
--
-- Name: user_omniauths fk_rails_8c1c9cb22e; Type: FK CONSTRAINT; Schema: public; Owner: -
--
@ -1600,6 +1616,7 @@ INSERT INTO "schema_migrations" (version) VALUES
('20190915131325'),
('20190921142404'),
('20190921161613'),
('20190921191213');
('20190921191213'),
('20190928171705');

View File

@ -2,6 +2,7 @@
FactoryBot.define do
factory :supporter_relationship, class: Relationship do
association :status, factory: :some_relation_status
association :person, factory: :initial_person
association :regional_office
association :initiator_account, factory: :superuser_account

View File

@ -5,6 +5,12 @@ require 'rails_helper'
RSpec.describe Relationship do
subject { create :supporter_relationship }
describe '#status' do
it do
is_expected.to belong_to(:status).class_name('RelationStatus').required
end
end
describe '#person' do
it do
is_expected.to belong_to(:person).inverse_of(:all_relationships).required