Rails + Ajax在while循环期间呈现多次

时间:2016-10-31 11:03:01

标签: javascript ruby-on-rails ajax

由于remote: true

,我有一个异步发送的表单

在我的控制器中,我有一个循环因为它需要多次执行某个特定的动作。

今天我只在循环结束时渲染结果并且它正在工作,但我希望能够呈现进展每个循环时间,但是当我在其中使用respond_to时循环有一个错误

  

AbstractController :: DoubleRenderError(在此操作中多次调用渲染和/或重定向。)

我也尝试了render_to_string,但没有任何显示。

如何绕过它以将循环的进展百分比(例如)渲染到视图?

我的控制器

def run
  while condition
    # perform some actions
    render_to_string :partial => "static_pages/message_sent", :locals => { :message_sent => "Some text<br />" }
    respond_to do |format|
      format.js{ render :partial => "static_pages/message_sent", :locals => { :message_sent => "Some text<br />" } }
    end
  end
end

我的观点

<%= form_tag("/run", method: "post", remote: true) do %>
  # Some form inputs
  <%= submit_tag("Start", :id => "start_script", data: { disable_with: "Wait..." }) %>
<% end %>

<br /><br />

<h3>Result :</h3>
<div id="script_output"></div>

部分_message_sent.html.erb

$('#script_output').append("DOES IT SHOWS UP?"); # No it doesn't

run.js.erb(仅在循环结束时工作)

$('#script_output').append("<%= @output.html_safe %>")

0 个答案:

没有答案