использующий voatsable geo Act_as для лайков и желающий постоянно менять цвет сердца на красный после того, как пользователь понравился - PullRequest
0 голосов
/ 25 августа 2018

Я использую драгоценный камень act_as, и мне удается изменить цвет сердца на красный после того, как пользователь нажал на сердце с помощью javascript.Однако, как только сервер обновляется, сердце снова становится серым, и нет никаких признаков того, понравился ли пользователю текущий пост или нет.Как я могу изменить цвет навсегда после того, как пользователь понравился.Моя идея состоит в том, чтобы установить логическое значение true в таблице голосования, а затем проверить это каким-либо образом в представлении.Но я не уверен, как именно это реализовать.Любая помощь будет принята с благодарностью.

lists_controller.rb

def vote
 if !current_user.liked? @list
  @list.liked_by current_user
 elsif current_user.liked? @list
  @list.unliked_by current_user
end

голосовать* show.html.erb

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

1 Ответ

0 голосов
/ 25 августа 2018

Вы можете создать помощника, чтобы сделать класс liked css постоянным в вашем представлении:

application_helper

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

show.html.erb

<%= link_to like_list_path(@list), :class => "like-btn", method: :put, remote: :true do %>
  <%= liked_list(@list) %>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...