У меня есть небольшое приложение с событиями. В моем индексном представлении для событий я повторяю все события и отображаю некоторые данные. Внутри цикла each
у меня есть ссылка на «Upvote» конкретное событие, это запрос ajax. По некоторым причинам мое мнение не обновляется сразу же, но обновляется, когда я снова нажимаю «Upvote».Rails link_to с ajax remote true not update view
Вот моя ссылка на 'Upvote'
<div id="upvote_link_<%= event.id%>">
<%= link_to('Upvote', upvote_event_path(event), method: :post, remote: true)%>
</div>
Это мой upvote
метод, где я увеличиваю votes
поле.
def upvote
@event = Event.find(params[:id])
Event.increment_counter(:votes, @event.id)
respond_to do |format|
format.js
end
end
Следующее это мой upvote.js.erb
где я заменил старое votes
значение с новым значением.
$('#upvotes_<%= @event.id %>').html("<%= escape_javascript (render 'upvote', event: @event)%>");
Следующая моя _upvote.html.erb
частичная, которая заменяет старую votes
значение.
<span style="font-family:MetaSerifOT-Book;font-size:13px;">
<%= pluralize(event.votes, "vote") %>
</span>
Проблема заключается в том, когда я нажал на ссылку «Upvote» мой запрос проходит через и votes
поле в моей модели событий не обновляется, но обновление вид обыкновению, пока я нажал Upvote
снова. Я не уверен, что происходит. Любые идеи или предложения?
Обновление Это где я установить идентификатор: upvotes_<%= event.id %>
Я изолировал подсчет Votes
внутри частичный.
<div id="upvotes_<%= event.id%>">
<%= render 'upvote', event: event %>
</div>
@rob Я обновил вопрос, чтобы показать, где я установил ID:' upvotes_ <% = @ event.id%> ' –