diaspora/app/models/reference.rb
2017-09-28 23:04:34 +02:00

23 lines
548 B
Ruby

# frozen_string_literal: true
class Reference < ApplicationRecord
belongs_to :source, polymorphic: true
belongs_to :target, polymorphic: true
validates :target_id, uniqueness: {scope: %i[target_type source_id source_type]}
module Source
extend ActiveSupport::Concern
included do
has_many :references, as: :source, dependent: :destroy
end
end
module Target
extend ActiveSupport::Concern
included do
has_many :referenced_by, as: :target, class_name: "Reference", dependent: :destroy
end
end
end