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 def create
if relationable_object && related_object if relationable_object && related_object
@relationable.relate_content(@related) RelatedContent.create(parent_relationable: @relationable, child_relationable: @related)
flash[:success] = t('related_content.success') flash[:success] = t('related_content.success')
else else

View File

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

View File

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