将Ruby对象转换为Javascript对象以进行插值

时间:2013-04-26 18:55:20

标签: javascript jquery ruby json

将一些常见的Ruby对象(如字符串,散列,数组)转换为相应的Javascript对象有什么好方法?例如,jQuery css()接受散列作为参数。假设我有这样的Ruby哈希:

h = {"background-color" => "yellow", "color" => "green"}

我想将这个ruby对象嵌入到一个字符串中,以便它成为一个有效的javascript(jQuery)命令。我现在最好的尝试是通过json转换它:

"$('#foo').css(JSON.parse('#{h.to_json}'));"

但效果不佳。我想要一种更直接,更有效的方法来做到这一点。有好办法吗?

1 个答案:

答案 0 :(得分:7)

无需转换为字符串,然后转换为JSON.parse:

"$('#foo').css(#{h.to_json});"

或者如果你突破它......

var h = #{h.to_json};
"$('#foo').css(h);"

以客户身份呈现给客户:

var h = {"background-color":"yellow","color":"green"};
$('#foo').css(h);