Ich habe eine AJAX-Anfrage in meiner App Rails, die eine Variable aus meiner Controller-Aktion zurückgibt. Innerhalb der Controller-Aktion habe ich eine Schleife, die einige Zeit braucht, um durchzukommen.Schienen Ajax - render mehrere Antworten in einer Aktion
-Controller
def myAction
$j = 1
until $j > list_size do
array << { :foo => $j }
$j +=1;
end
@myvariable = array.to_json
end
myAction.js.erb
var myVariable = JSON.parse("<%= escape_javascript(raw @myvariable) %>");
for (var k = 0; k < myVariable.length; k++) {
$("#myDiv").append(myVariable[k].foo);
}
Ich möchte stattdessen die Ergebnisse in jeder Phase der Schleife zum js.erb Teil machen können, Warten auf die Schleife zu beenden. Ist dies möglich, ohne die Schleife zu unterbrechen und die Aktion vorzeitig zu beenden, bevor die Schleife beendet ist? Vielleicht so etwas wie dieses (Pseudo-Code, der falsch ist):
-Controller
def myAction
$j = 1
until $j > list_size do
array << { :foo => $j }
render array.to_json
$j +=1;
end
end
myAction.js.erb
var myVariable = JSON.parse("<%= escape_javascript(raw @myvariable) %>");
$("#myDiv").append(myVariable.foo);
Vielleicht kann dies auf Ihre Frage in Beziehung gesetzt werden: http://stackoverflow.com/questions/1402757/how-to-break-out-from-a-ruby-block – scaryguy
Danke, aber wird nicht automatisch die Schleife verlassen (bevor sie die nächste erreicht)? – diasks2