rails 5에서 컨트롤러에서 부분을 렌더링하려하지만 Ajax (성공시)를 사용하지만 부분 데이터를 렌더링 한 후 빈 데이터가 ajax로 전달됩니다.Rails 5에서 respond_with를 사용할 때 빈 몸체
동일한 코드가 rails4에서 작동했습니다. 나는 또한 rails5에 대해서 응답자 젬을 업데이트했다.
컨트롤러 :
respond_with do |format|
format.html do
if request.xhr?
@images = get_images
session[:prev_images] = submitted_ids
session[:prev_winner] = winner_id
@prev_images = Lentil::Image.find(submitted_ids).sort_by{ |i| i.id }
@prev_winner = session[:prev_winner]
render :partial => "/lentil/thisorthat/battle_form", :locals => { :images => @images, :prev_images => @prev_images, :prev_winner => @prev_winner }, :layout => false, :status => :created
end
end
아약스 :
$(document).on('ajax:success', function (evt, data, status, xhr) {
// Insert new images into hidden div
$('.battle-inner:eq(1)').replaceWith(data);
$('.battle-inner:eq(1)').imagesLoaded()
.done(function() {
// Remove old images
$('.battle-wrapper:eq(0)').remove();
// Div with new images moves up in DOM, display
$('.battle-wrapper:eq(0)').show();
// Hide Spinner
$('#spinner-overlay').hide();
});
_battle_form :
요청 처리 JS로<div class="grid battle-inner">
<%= semantic_form_for :battle, :remote => true, :url => thisorthat_result_path do |form| %>
<% @images.each do |image| %>
<div class="battle-image-wrap grid__cell">
</div>
<% end %>
<% end %>
</div>
예로부터 데이터를 읽으려면, 내 요청이 처리지고 있습니다. 디버거에서 자바 스크립트를 통해 흐르는 컨트롤을 볼 수 있지만 데이터 매개 변수는 정의되지 않았습니다. 레일즈 4와 동일합니다. format.js와 동일한 동작 –