Add scenario to RelatedContent model spec to check opposite related content creation

This commit is contained in:
Bertocq
2017-11-27 19:13:07 +01:00
parent 13f5fa55ab
commit 03f0534b2f
2 changed files with 25 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
class RelatedContent < ActiveRecord::Base
belongs_to :parent_relationable, polymorphic: true
belongs_to :child_relationable, polymorphic: true
has_one :opposite_related_content, class_name: 'RelatedContent', foreign_key: :related_content_id
validates :parent_relationable_id, presence: true
validates :parent_relationable_type, presence: true
@@ -8,4 +9,13 @@ class RelatedContent < ActiveRecord::Base
validates :child_relationable_type, presence: true
validates :parent_relationable_id, uniqueness: { scope: [:parent_relationable_type, :child_relationable_id, :child_relationable_type] }
after_create :create_opposite_related_content, unless: proc { opposite_related_content.present? }
private
def create_opposite_related_content
related_content = RelatedContent.create!(opposite_related_content: self, parent_relationable: child_relationable, child_relationable: parent_relationable)
self.opposite_related_content = related_content
end
end