по каким-то причинам голосовые голоса записываются дважды на пользователя - PullRequest
0 голосов
/ 04 сентября 2018

почему-то голоса подсчитываются дважды каждый раз, когда пользователь голосует. Я не могу определить, где ошибка. См. Скриншот для подсчета дубликатов Кажется, я запускаю двойные запросы jquery, но я не знаю, какие из них удалить. rails-jquery gem или jquery в приложении. js

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'

1 Ответ

0 голосов
/ 04 сентября 2018

Используете ли вы raqu jquery gem, а также добавляете код в application.js? Похоже, ваш Rails JS загружается дважды и дважды отправляет вашу форму AJAX.

Проверьте журналы приложений на наличие дубликатов запросов для подтверждения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...