У меня есть модель комментариев с похожими / непохожими функциями, и когда мне нравится любой комментарий в первый раз, он работает правильно, потому что аналогичная ссылка была отображена с исходной визуализацией html.erb.Но когда я пытаюсь что-то отличать или повторять, он всегда обновляет партиалы со ссылкой на первый комментарий, который мне понравился или не понравился, соответственно.
comments_controller.rb
def like
@comment = Comment.find(params[:id])
@comment.liked_by current_user
respond_to do |format|
format.html { redirect_to :back }
format.js { render '/comments/like.js.erb' }# layout: false }
end
end
def unlike
@comment = Comment.find(params[:id])
@comment.unliked_by current_user
respond_to do |format|
format.html { redirect_to :back }
format.js { render '/comments/unlike.js.erb' }# layout: false }
end
end
в отличие от.js.erb
$('.unlike_comment').bind('ajax:success', function(){
$(this).parent().parent().find('.vote_count').html('<%= escape_javascript @comment.votes_for.size.to_s %>');
$(this).closest('.unlike_comment').hide();
$(this).closest('.votes').html(' <%= link_to "", like_comment_path(@comment), remote: true, method: :get, class: 'like_comment glyphicon glyphicon-chevron-up', :style=>'color: #cecece;' %>');
});
like.js.erb
$('.like_comment').bind('ajax:success', function(){
$(this).parent().parent().find('.vote_count').html('<%= escape_javascript @comment.votes_for.size.to_s %>');
$(this).closest('.like_comment').hide();
$(this).closest('.votes').html(' <%= link_to "", unlike_comment_path(@comment), remote: true, method: :get, class: 'unlike_comment glyphicon glyphicon-chevron-up', :style=>'color: #202020;' %>');
});
И соответствующая часть _comment.html.erb
<comment-body>
<p>
<span class="votes">
<% if logged_in? && (current_user.liked? comment) %>
<%= link_to "", unlike_comment_path(comment), method: :get, remote: true, class: 'unlike_comment glyphicon glyphicon-chevron-up', :style=>'color: #202020;' %>
<% elsif logged_in? %>
<%= link_to "", like_comment_path(comment), method: :get, remote: true, class: 'like_comment glyphicon glyphicon-chevron-up', :style=>'color: #cecece;' %>
<% else %>
<%= link_to "", prompt_login_comment_path(comment), method: :get, remote: true, class: 'prompt_login glyphicon glyphicon-chevron-up', :style=>'color: #cecece;' %>
<% end %>
</span>
<%= link_to comment.title, comment, class: 'bigger comment-text' %> <%= link_to comment.body, comment, class: 'notbig comment-text' %>
</p>
</comment-body>
Так, например,если мне не нравится комментарий 4, то, как и комментарий 3, он изменит ссылку непохожих в частичном комментарии 3 на комментарии / 4 / другому.Что может пойти не так, чтобы это произошло?Любая помощь с благодарностью.