繁体   English   中英

Rails:我们有内置的东西来输出ruby数组作为javascript函数调用的参数吗?

[英]Rails: do we have anything built-in to output a ruby array as arguments to a javascript function call?

这是我想要的东西,如意的代码:

在我的控制器动作中:

@javascript_function_args = [ "foo", "bar", 1, [2, 3], { :zort => 'narf', :nom => 'cake' }]

在我的erb视图中:

<script … >
  performAwesome(<%= @javascript_function_args.to_js_args %>);
</script>

或者,甚至更好:

  <%= call_javascript_function :performAwesome, *@javascript_function_args %>

我的预期输出:

<script … >
  performAwesome("foo", "bar", 1, [2, 3], { zort : 'narf', nom : 'cake' });
</script>

我想我可以只是#to_json数组并#to_json包装括号,但是我想知道是否还有更具体的方法来处理它。

这是另一种不涉及字符串操作的方法。

在适当的帮助程序中(或者,如果愿意,可以猴子修补Array):

def to_js_args(array)
  array.map {|arg| arg.to_json}.join(",")
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM