Rails: есть ли у нас что-нибудь встроенное для вывода массива ruby ​​в качестве аргументов для вызова функции javascript? - PullRequest
1 голос
/ 10 сентября 2009

Вот что я хочу, в желаемом коде:

в моем действии контроллера:

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

в моем представлении:

<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 массив и убрать скобки, но мне интересно, есть ли что-то более конкретное, чтобы справиться с этим.

1 Ответ

1 голос
/ 11 сентября 2009

Вот еще один способ сделать это, не требующий манипулирования строками.

В подходящем помощнике (или вы можете обезопасить массив, если хотите):

def to_js_args(array)
  array.map {|arg| arg.to_json}.join(",")
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...