由于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 %>")