unterminated string literal, how to properly send strings

I have a line like the following in my Rails view/template (generating JavaScript):

<script type="text/javascript"> ... y = escape('<%= h(e.error_desc) %>'); ... </script>

Because some of the error_descs have newlines, the browser is receiving page code that looks like this:

y = escape('Information about the error. Another line in the description. A third line in the description string.');

JavaScript is choking on the broken string with the error "unterminated string literal". What is the best practices way to handle this, since apparently Rails's h() isn't removing newlines?

I have a line like the following in my Rails view/template (generating JavaScript):

<script type="text/javascript"> ... y = escape('<%= h(e.error_desc) %>'); ... </script>

Because some of the error_descs have newlines, the browser is receiving page code that looks like this:

y = escape('Information about the error. Another line in the description. A third line in the description string.');

to_json ?

Fred

I believe I found the solution I was looking for - escape_javascript ().

Seems obvious now, but somehow I hadn't encountered it (and amazingly, none of my searches for "rails javascript unterminated literal string" turned up this useful function. It's part of the Rails JavaScript helpers.