由于某种原因,每个用户记录两次可投票票

问题描述 投票:1回答:1

由于某种原因,每次用户投票时,投票会被计算两次。我无法确定错误的位置。 See screenshot for duplicate count似乎我正在解雇双jquery请求,但我不知道要删除哪个。 application.js中的rails-jquery gem或jquery

show.html.erb

<div class="like">
      <%= link_to like_list_path(@list), :class => "like-btn", method: 
      :put, remote: :true do %>
        <%= liked_list(@list) %>
      <% end %>
      <%= link_to "", "data-toggle" => "modal", "data-target" => "#likeModalLong" do %>
        <span class="likes-count"><%= @list.get_upvotes.size %></span>
      <% end %>
    </div>

lists_controller.rb

def vote
 if !current_user.liked? @list
   @list.liked_by current_user
   #create like notification for the user
   Notification.create(recipient: @list.user, actor: current_user, 
  action: "liked", notifiable: @list)
 elsif current_user.liked? @list
  @list.unliked_by current_user
 end
end

vote.js.erb

<% if current_user.liked? @list %>
 $('.fa-heart').addClass('liked');
<% else %>
 $('.fa-heart').removeClass('liked');
<% end %>
$('.likes-count').html("<%= @list.get_upvotes.size %>")

application_helper.rb

module ApplicationHelper
  def liked_list(list)
   if current_user.username == "guestuser"
    liked = ''
   else
    liked = current_user.liked?(list) ? 'liked' : ''
   end
  content_tag(:i, '', class: "fa fa-heart #{liked}")
 end
end

更新:不确定删除哪一个

**application.js**

//= require jquery3
//= require jquery_ujs
//= require rails-ujs
//= require cocoon
//= require popper
//= require bootstrap-sprockets
//= require social-share-button
//= require_tree .

的Gemfile

gem 'jbuilder', '~> 2.0'
gem 'pg', '~> 0.21'
gem 'puma'
gem 'rails', '5.2.0'
gem 'redis'
gem 'cocoon'
gem 'autoprefixer-rails'
gem 'font-awesome-sass', '~> 5.0.9'
gem 'sass-rails'
gem 'simple_form'
gem 'uglifier'
gem 'webpacker'
gem 'bootstrap', '~> 4.1', '>= 4.1.1'
gem 'jquery-rails'
gem 'searchkick'
gem 'turbolinks'
gem 'cloudinary'
gem 'carrierwave', '~> 1.2'
gem 'acts_as_follower', github: 'tcocca/acts_as_follower', branch: 'master'
gem 'public_activity'
gem 'link_thumbnailer'
gem 'acts_as_votable', '~> 0.11.1'
javascript ruby-on-rails ruby ajax
1个回答
2
投票

您是否正在使用rails jquery gem并在application.js中添加代码?听起来你的Rails JS被加载两次并且双重提交你的AJAX表单。

检查应用日志中是否有重复的确认请求。

© www.soinside.com 2019 - 2024. All rights reserved.