0

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> 

답변

0

인가? 그것은 더 레일> 5.1 의존성이다 JQuery와-UJS에 문제가 있었다 format.html

+0

예로부터 데이터를 읽으려면, 내 요청이 처리지고 있습니다. 디버거에서 자바 스크립트를 통해 흐르는 컨트롤을 볼 수 있지만 데이터 매개 변수는 정의되지 않았습니다. 레일즈 4와 동일합니다. format.js와 동일한 동작 –