Ich habe eine Ruby on Rails-Anwendung und ich muss einige Berechnungen in Ruby und JavaScript duplizieren. Ruby wird auf der Serverseite verwendet, aber ich muss auch einen Schülergrad im Browser mit JavaScript berechnen.Was ist der beste Weg, um eine Berechnung in Ruby & JavaScript zu duplizieren?
Mein erster Gedanke ist es, eine JavaScript-Funktion mit Strings aufzubauen, sie in JSON zu konvertieren, sie an den Browser zu senden, wo sie dekodiert und als normale JavaScript-Funktion verwendet wird. Klingt das für Sie praktikabel? Ich habe etwas einfaches versucht wie
def letterGradeCalc "function calcLetterGrade(score) { if(score >= 90) { return 'A'; } else if(score >= 80) { return 'B'; } else if(score >= 0) { return 'F'; } else return ''; }".to_json end
, aber es ist keine gültige JavaScript-Funktion, wenn der Browser es bekommt. Es sieht irgendwie wie eins aus, aber es hat doppelte Anführungszeichen.
Banne ich hier den falschen Baum? Ich habe das Gefühl, dass es einen wahnsinnig einfachen Weg dafür gibt und ich vermisse es komplett. :)
Ich stimme Marc zu, dass dies irgendwie wie das Drehen Ihrer Räder scheint. Um eine Funktion zu erhalten, müssen Sie lediglich die empfangene Zeichenfolge in Ihrem Javascript auswerten. – Chuck
Ah ha, JavaScript eval funktioniert super. Es stellt sich heraus, dass Sie mit eval nicht nur Daten zurückgeben, sondern auch Funktionen aus Strings erstellen können. Es ist irgendwie klobig und überhaupt nicht Ruby, aber es funktioniert. Danke! –
Wenn Sie einen Rails-Server haben, warum können Sie ihn nicht auf der Serverseite in Ruby schreiben und ihn nur auf der Client-Seite aufrufen? – Zane