После добавления 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)```
Я знаю, что я должен добавить уничтожение где-то для голоса.Но везде, где я пытаюсь это выразить, это не работает.Любая помощь с благодарностью.