Rails 3 Select_tag in javascript give missing ; error

When I write

    var x = "<%= select_tag(:activity_group, options_for_select(activity_grp),{:include_blank => 'Create New Group', :style => 'width: 100px'}) %>"; where <% activity_grp = @activity_group.map { |ag| [ag.name, ag.id] } %>

However, I get error (missing ; before statement) in Firebug because

var x = "<select id="activity_group" name="activity_group" style="width: 100px"><option value="">Create New Group</option><option value="1">Movie</option>      <option value="2">Report</option>";

the code generated takes more than one line without concat the entire output. I tried html_safe as well it does not works

Can anyone guide me who came across this error before?

The problem is probably that you're using double-quotes inside a double-quoted string. Not sure if the ERB processing will process this if you enclose the whole thing in single quotes, which would be the easiest fix. If that doesn't work (in many contexts, single quotes are taken as "leave this stuff alone, don't process it in any way"), try escaping the interior double quotes before actually using the var's value. (Don't just replace them with single quotes, since many browsers don't recognize those for attributes.)

-Dave

> var x = "<select id="activity_group" name="activity_group"

The problem is probably that you're using double-quotes inside a double-quoted string. Not sure if the ERB processing will process this if you enclose the whole thing in single quotes, which would be the easiest fix. If that doesn't work (in many contexts, single quotes are taken as "leave this stuff alone, don't process it in any way"), try escaping the interior double quotes before actually using the var's value. (Don't just replace them with single quotes, since many browsers don't recognize those for attributes.)

An easy way of doing this is to use to_json, i.e.

var x = <%= select_tag(...).to_json %> since this turns what it is called on into a json object, which is near a dammit a valid js literal (apparently there is one of the unicode white space character which is valid in json but has to be escaped in javascript (or vice versa, I don't quite recall), but I've never run into this in the wild) There's also the escape_javascript helper

Fred

Thanks you guys for prompt response. It was helpful.