Easy RoR <-> Javascript syntax question

Hi there,

a simple n00b question:

I have that Javascript snippet on my page (see below; taken from jquery, actually).

I want to pass it the "@cities" array from the controller. But what's the correct syntax, here?


<script> $(document).ready(function(){ var data = @cities; <---- that's not correct, is it? $("#city").autocomplete(data); }); </script>

Small note: you really should not be using inline JavaScript (see Unobtrusive JavaScript - Wikipedia for more information). So while Freddy's solution will work, I would suggest putting your JavaScript in a separate file. In this case, there are two ways to get the value of @cities into the JavaScript code:

1. Use a .js.erb file and embed the value in ERb, just as you would in an inline script. This is very simple, but has the disadvantage that the browser cannot cache the script file, since the code is dynamically generated every time. 2 (my usual method). ---stylesheet--- .hidden: {display: none;} ---view--- <div id="cities" class="hidden"><%= @cities %></div> ---JavaScript--- $(document).ready(function(){   var data = $("#cities").innerHTML().doWhateverYouNeedToParseIt()   $("#city").autocomplete(data); });

Good luck!