Как мне удалить act_as_votable gem Проголосовать с поста на рельсах - PullRequest
0 голосов
/ 01 июля 2019

После добавления act_as_votable к сообщениям в Rails я больше не могу удалять сообщения.

Я добавил @ micropost.destroy к функциям upvote и downvote в контроллере микросообщений.Который технически работает.Но имеет отрицательный побочный эффект, так как также удаляет сообщение, когда я нажимаю как.

Некоторые из контроллеров микросообщений.

def destroy
  @micropost.destroy
  flash[:success] = "Micropost deleted"
  redirect_to request.referrer || current_user
end

def show
  @micropost = Micropost.find(params[:id])
end

def upvote
  @micropost = Micropost.find_by(id: params[:id])
  @micropost.upvote_from current_user
  redirect_to current_user
end

def downvote
  @micropost = Micropost.find_by(id: params[:id])
  @micropost.downvote_from current_user
  redirect_to feed_path
end

А теперь вид на сообщение, когда пользователь может как понравиться, так иудалить сообщение.

 <div class=“upvote”">
  <% if logged_in? %>
    <%= link_to like_micropost_path(@micropost), class:"like", 
   method: :put do %>
    <span class="voter"> That Was Funny</span>
  <% end %>

  <% elsif !logged_in? %>
    <%= link_to "Log In To Like Post", login_path, class: "like" 
  %>
  <% end %>
 </div>

 <span class="delete">
  <% if current_user?(@micropost.user) %>
  <%= link_to "Delete", @micropost, method: :delete, data: { 
 confirm: "Are You Sure?" } %>
  <% end %>
 </span>
<br>

Я не использую функцию downvote, так как разрешаю только upvotes.В его нынешнем виде, когда я нажимаю удалить.Когда он идет, чтобы удалить голосование, он фактически заканчивает голосование против, вместо того, чтобы удалять вот так:

 SQL (2.6ms)  UPDATE "microposts" SET "cached_votes_total" = $1, 
 "cached_votes_up" = $2, "cached_votes_score" = $3, 
 "cached_weighted_total" = $4, "cached_weighted_score" = $5, 
 "cached_weighted_average" = $6, "updated_at" = $7 WHERE 
 "microposts"."id" = $8  [["cached_votes_total", 1], 
 ["cached_votes_up", 1], ["cached_votes_score", 1], 
["cached_weighted_total", 1], ["cached_weighted_score", 1], 
["cached_weighted_average", 1.0], ["updated_at", "2019-07-01 
16:26:30.667921"], ["id", 20]]
(1.5ms)  COMMIT
Redirected to http://0.0.0.0:3000/users/2
Filter chain halted as :upvote rendered or redirected
Completed 302 Found in 103ms (ActiveRecord: 57.1ms)```

Я знаю, что я должен добавить уничтожение где-то для голоса.Но везде, где я пытаюсь это выразить, это не работает.Любая помощь с благодарностью.

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