У меня есть Acts As Votable gem, работающий в социальном приложении, которое я разрабатываю, и я пытаюсь заставить его работать через ajax, чтобы страница не обновлялась, что заставило читателя потерять свое место.Rails Acts As Votable Ajax Issue
Если я обновить страницу голос прошел через, но я получаю следующее сообщение об ошибке, и я не понимаю, что это значит, и как это исправить:
Template is missing
Missing template posts/upvote, application/upvote with {:locale=>[:en], :formats=>[:js, "application/ecmascript", "application/x-ecmascript", :html, :text, :js, :css, :ics, :csv, :vcf, :png, :jpeg, :gif, :bmp, :tiff, :mpeg, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :zip], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}.
В моих сообщениях контроллера:
def upvote
@post = Post.find(params[:id])
@post.liked_by current_user
end
мой мой взгляд:
<%= link_to like_post_path(post), class: "like", method: :put, :remote => true do %>
<button type="button" class="btn btn-primary btn-sm" aria-label="Left Align">
<i class="fa fa-heart"></i> Mark Voted For
| <%= post.get_upvotes.size %>
</button>
<% end %>
в нижней части моей точки зрения (на данный момент):
<script>
$('.like')
.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 (data) { $(this).html(data.count); });
</script>
Мои маршруты:
resources :posts, only: [:create, :edit, :update, :destroy] do
member do
put 'like' => 'posts#upvote'
end
end
Спасибо за любую помощь вы можете предложить.
спасибо. Это имеет смысл. –