I'm trying to assign a string value to a javascript object in my .erb file like so:
var data = {
'name': '<%= @product.name %>',
...
};
The problem is, if the value of name
is Tom's small ears
,
the output of data.name
would be Tom's small ears
.
Is there a way to escape special characters?
I tried doing 'name': '<%= raw @product.name %>'
but Uncaught SyntaxError: Unexpected identifier
gets output into the console.
Doing <%= escape_javascript @product.name %>
outputs Tom\'s small ears
Edit
@Stefan's comment under MrYoshiji's
answer worked for me.
You can use escape_javascript()
to accomplish that:
var data = {
'name': "<%== escape_javascript @product.name %>",
#...
};
The alias of this method is j
:
var data = {
'name': "<%== j @product.name %>"
}