我有一個Ruby on Rails應用程序,我需要在Ruby和JavaScript中複製一些計算。 Ruby用在服務器端,但我也需要使用JavaScript在瀏覽器上計算學生成績。在Ruby和JavaScript中複製計算的最佳方式是什麼?
我的第一個想法是使用字符串構建JavaScript函數,將其轉換爲JSON,並將其發送到瀏覽器,並在其中解碼並用作普通的JavaScript函數。這聽起來對你有用嗎?我試過一些簡單的東西,比如
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
但是當瀏覽器得到它時它不是一個有效的JavaScript函數。它看起來像一個,但它有雙引號。
我在這兒吠錯了樹嗎?我覺得有一些非常簡單的方法來做到這一點,但我完全錯過了它。 :)
我同意Marc的說法,這看起來有點像旋轉你的輪子。但要獲得一個函數,你只需要在你的Javascript中評估收到的字符串。 – Chuck 2009-05-27 19:58:27
啊哈,JavaScript eval很棒。事實證明,您可以使用eval不僅返回數據,而且還可以從字符串構建函數。它有點笨重,根本不是Rubyish,但它的工作原理。感謝名單! – 2009-05-28 14:47:23
如果你有一個Rails服務器,爲什麼你不能在服務器端用ruby寫它,然後在客戶端調用它? – Zane 2012-10-24 15:34:08