Pass Ruby Array to Javasript Problem ..

I have an array named weight_array. Now i want to pass it to my
javascript function abc.. How can i pass it .. May be a stupid question
but did'nt find it by googling also ..

Currently i am doing like this.
<%= radio_button "ab", "cd", { :onclick => "abc(weight_array)"; } %>

Tried this also ..
<%= radio_button "ab", "cd", { :onclick => "<%= abc(weight_array) %> ";
} %>

Tried this as well ..
<%= radio_button "ab", "cd", { :onclick => "abc(weight_array.to_json)";
} %>

Also after resolving it, i want to know that if i need to pass the ruby
array with join function ..then how can we pass ..
I mean the function [ weight_array.join(", ") .. ] ..

Need to know each and every possible answer ..

Please clarify, abc is the javascript function and weight_array is the ruby array, right?


Although I know very little javasacript, but try this as well:

<%= radio_button “ab”, “cd”, { :onclick => “abc( " + <%= weight_array %> + " )”; } %>

BTW, you should use join to make weight_array a string before passing to javascript function. You can recreate the array in javascript, if you wish, by splitting back.


Tried but of no worth ..
Newayz thanks a lot for replying .. :slight_smile:

Cheers ..

Abhinav Saxena wrote:

Did you try converting weight_array into a string first? Because
javascript does not understand ruby objects.


Use JSON for passing array data between Ruby and Javascript. I think
you missed the #{} inside the string above.

<%= radio_button "ab", "cd", { :onclick => "abc(#
{weight_array.to_json})"; } %>

Thanks resolved ..
Resolved using javascript .. Manipulating that array in javascript only
.. :slight_smile:

Mukund wrote: