Я использую гем act_as_votable и пытаюсь обновить число лайков на странице просмотра без перезагрузки страницы.Я перепробовал много руководств и дошел до того, что сама страница не перезагружается, но все сообщения исчезают, а затем появляются с обновленным счетчиком.Я пытаюсь помешать постам делать это.И цель remote.request_ip - иметь возможность голосовать без создания учетной записи.
Видеоконтроллер
def like
@video.upvote_from current_user
render layout: false
end
def upvote
@video = Video.find(params[:id])
@ip = request.remote_ip
was_it_upvoted = Ipaddresstracker.find_by(ipaddress: @ip, videoid: @video.id)
if was_it_upvoted
@video.downvote_by User.first
was_it_upvoted.delete
else
Ipaddresstracker.create(:ipaddress => @ip, :videoid => @video.id)
@video.vote_by voter: User.first, :duplicate => true
end
redirect_to :back
end
like.js.haml
:plain
$('#like-count').html("#{@article.get_upvotes.size}");
_index.html.erb
<div class="btn-group">
<%= link_to like_video_path(x), method: :put, remote: :true, id: "like-count", class: "btn btn-default btn-sm" do %>
<span class="glyphicon glyphicon-chevron-up"></span>
Upvote
<div> <%= x.get_upvotes.size %> </div>
<% end %>
<div>
Маршруты
resources :videos do#, only: [:index, :show] do
member do
put "like", to: "videos#upvote"
put "dislike", to: "videos#downvote"
put "like" => "videos#like"
put "unlike" => "videos#unlike"
end
end