diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 44c588155..5b26a6682 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -1,12 +1,9 @@ class MergeRequest < ApplicationRecord belongs_to :requesting_organisation, class_name: "Organisation" - # has_many :merging_organisations, class_name: "Organisation", primary_key: "merging_organisation_ids", foreign_key: "id" - # default_scope -> { select(column_names + ["merging_organisation_ids"]) } - validate :validate_merging_organisations + has_many :merge_request_organisations + has_many :merging_organisations, through: :merge_request_organisations, source: :merging_organisation - def merging_organisations - Organisation.where(id: merging_organisation_ids) - end + validate :validate_merging_organisations private diff --git a/app/models/merge_request_organisation.rb b/app/models/merge_request_organisation.rb new file mode 100644 index 000000000..da457702e --- /dev/null +++ b/app/models/merge_request_organisation.rb @@ -0,0 +1,8 @@ +class MergeRequestOrganisation < ApplicationRecord + belongs_to :merge_request, class_name: "MergeRequest" + belongs_to :merging_organisation, class_name: "Organisation" + validates :merge_request_id, presence: { message: I18n.t("validations.organisation.stock_owner.blank") } + validates :merging_organisation_id, presence: { message: I18n.t("validations.organisation.managing_agent.blank") } + + has_paper_trail +end