Ответ 1
Вы можете использовать escape_javascript()
для выполнения этого:
var data = {
'name': "<%== escape_javascript @product.name %>",
#...
};
Псевдоним этого метода j
:
var data = {
'name': "<%== j @product.name %>"
}
Я пытаюсь присвоить строковое значение объекту javascript в моем файле .erb следующим образом:
var data = {
'name': '<%= @product.name %>',
...
};
Проблема в том, что если значение name
равно Tom small ears
,
вывод data.name
будет Tom's small ears
.
Есть ли способ избежать специальных символов?
Я пробовал делать 'name': '<%= raw @product.name %>'
, но Uncaught SyntaxError: Unexpected identifier
выводится на консоль.
Выполнение <%= escape_javascript @product.name %>
выходов Tom\'s small ears
Edit
Комментарий @Stefan в ответе MrYoshiji's
работал у меня.
Вы можете использовать escape_javascript()
для выполнения этого:
var data = {
'name': "<%== escape_javascript @product.name %>",
#...
};
Псевдоним этого метода j
:
var data = {
'name': "<%== j @product.name %>"
}
var data = {
'name': '<%=j @product.name.html_safe %>',
...
};