簡體   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