Relationable find_related_content should not be used to find, refactored to have a single purpose

This commit is contained in:
Bertocq
2017-12-20 02:06:21 +01:00
parent 2688f2a919
commit 2e0dd9caea
3 changed files with 6 additions and 6 deletions

View File

@@ -7,7 +7,7 @@ class RelatedContentsController < ApplicationController
def create
if relationable_object && related_object
@relationable.relate_content(@related)
RelatedContent.create(parent_relationable: @relationable, child_relationable: @related)
flash[:success] = t('related_content.success')
else

View File

@@ -5,8 +5,8 @@ module Relationable
has_many :related_contents, as: :parent_relationable, dependent: :destroy
end
def relate_content(relationable)
RelatedContent.find_or_create_by(parent_relationable: self, child_relationable: relationable)
def find_related_content(relationable)
RelatedContent.where(parent_relationable: self, child_relationable: relationable).first
end
def relationed_contents

View File

@@ -1,9 +1,9 @@
<ul class="related-content-list" id="related-content-list">
<% @related_contents.each do |related| %>
<li id="related-content-<%= related.relate_content(relationable).id %>">
<li id="related-content-<%= related.find_related_content(relationable).id %>">
<% if current_user %>
<span id="<%= dom_id(related.relate_content(relationable)) %>" class="js-score-actions score-actions">
<%= render 'relationable/score', related: related.relate_content(relationable) %>
<span id="<%= dom_id(related.find_related_content(relationable)) %>" class="js-score-actions score-actions">
<%= render 'relationable/score', related: related.find_related_content(relationable) %>
</span>
<% end %>