Wie kann ich Ruby-Datenstrukturen in JavaScript-Datenstrukturen mit .js.erb konvertieren?

7

Ich habe eine .js.erb Vorlage und ich mache:

%Vor%

foo entspricht 123

foo2 entspricht [1,2,3]

foo3 ist nicht definiert (weil der Browser sich über einen Parse-Fehler beschwert)

foo4 ist undefiniert (weil der Browser sich über einen Parse-Fehler beschwert)

Der einzige Weg, wie ich foo3 zur Arbeit bringen konnte, war:

%Vor%

Ich konnte nicht auf diese Weise arbeiten ... Ich habe es versucht:

%Vor%

Unterm Strich ist all das, was eval Zeug braucht, lächerlich - da muss es einen besseren Weg geben! Kann mir bitte jemand aufklären, was es ist?!?!

    
patrick 18.10.2011, 16:15
quelle

2 Antworten

20

Das Problem war, dass .to_json die HTML-Entitäten entpackt!

Die Lösung war zu tun:

var foo = & lt;% = {: lol = & gt; ["lmaonade", "rotflcopter"]}. to_json.html_safe}% & gt;

Das gibt mir:

%Vor%     
patrick 19.10.2011, 23:08
quelle
0

Wenn Sie verarbeiten müssen, wenn @foo gleich null ist, versuchen Sie Folgendes:

%Vor%

Das Konvertieren eines Ruby-Hashes in ein Javascript-Objekt geschieht folgendermaßen:

%Vor%     
Teddy 18.10.2011 16:29
quelle

Tags und Links