Я использую act_as_votable на моих рельсах 4 приложения.Действует как Votable Prompt on Downvote Rails 4
У меня он настроен так, что upvotes/downvotes берутся через запрос ajax. Я хотел бы реализовать подсказку или подтверждение с текстовым полем внутри нее, поэтому, когда пользователь опустошает статью, отображается всплывающее окно, и они могут ввести свою причину для его downvoting.
У меня возникли проблемы с поиском какой-либо документации по этому поводу. Есть ли у кого-нибудь рекомендации?
Вот мой текущий код контроллера:
и внутри зрения:
<%= link_to like_article_subarticle_path(@article, @subarticle), class: "voteup", method: :put, remote: true, data: { type: :json } do %>
<button type="button" class="btn btn-success btn-lg" aria-label="Left Align" style="margin-right:5px">
<span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span> Helpful
</button><div class="badge" style="margin-right:10px"><%= @subarticle.get_upvotes.size %></div>
<% end %>
<script>
$('.voteup')
.on('ajax:send', function() { $(this).addClass('loading'); })
.on('ajax:complete', function() { $(this).removeClass('loading'); })
.on('ajax:error', function() { $(this).after('<div class="error">There was an issue.</div>'); })
.on('ajax:success', function(e, data, status, xhr) { $(this).find("div").text("+1"); });
</script>
<%= link_to dislike_article_subarticle_path(@article, @subarticle), class: "votedown", method: :put, remote: true, data: { type: :json } do %>
<button type="button" class="btn btn-danger btn-lg" aria-label="Left Align" style="margin-right:5px">
<span class="glyphicon glyphicon-thumbs-down" aria-hidden="true"></span> Unhelpful
</button><div class="badge"><%= @subarticle.get_downvotes.size %></div>
<% end %>
<script>
$('.votedown')
.on('ajax:send', function() { $(this).addClass('loading'); })
.on('ajax:complete', function() { $(this).removeClass('loading'); })
.on('ajax:error', function() { $(this).after('<div class="error">There was an issue.</div>'); })
.on('ajax:success', function(e, data, status, xhr) { $(this).find("div").text("-1"); });
</script>
Спасибо за любую помощь. Старался найти способ сделать это какое-то время.