Возврат значения после AJAX запроса на Rails 6
Как можно вернуть ответ в Rails после AJAX запроса? Например у меня есть переменная которая сформировалась после AJAX запроса и мне необходимо вернуть её обратно и встроить в HTML (показать ответ)
Контроллер:
def like
...
result = ...
redirect_to "..."
end
Запрос:
$.post("...", {
apiid: "...",
apikey: "...",
email: "..."
});
Ответы (1 шт):
Автор решения: Василиса
→ Ссылка
Примерно вот так:
# products_controller.rb
def upvote
@product.upvote_by current_user
@product.create_activity :upvote, owner: current_user
respond_to do |format|
format.html { redirect_back(fallback_location: root_path) }
format.js
end
end
# views/products/upvote.js.erb
<% if user_signed_in? %>
<% if current_user.voted_up_on? @product %>
var button_html = '<%= j render(partial: 'products/downvote_button', locals: { product: @product }) %>';
$('#vote<%= @product.id %>').html(button_html);
<% end %>
<% end %>
Собственно, вам нужно создать вьюшку с названием экшна и расширением .js, она будет отрендерена автомагически. В ней обычным jQuery заменяете нужные элементы на странице в соответствии с полученными данными