#jquery #ruby-on-rails #ruby-on-rails-4 #ruby-on-rails-5
#jquery #ruby-on-rails #ruby-on-rails-4 #ruby-on-rails-5
Вопрос:
У меня есть приложение Rails, которое имеет toinsert в качестве имен столбцов одной из таблиц, в которой хранится целый элемент div. Я хочу вставить этот элемент с помощью jquery в HTML DOM в элемент с классом «map«. Я выполняю вызов AJAX и использую это:
$('.map').html('<%= @dataextracted.toinsert %>');
но вместо этого:
<div class='map'>
<div class='fromdatabase'></div>
</div>
Он выполняет следующее:
<div class='map'>
"<div class='fromdatabase'></div>"
</div>
Таким образом, элемент вставляется в виде строки. Я подумал, что <% =%> может создавать проблемы, поэтому я написал следующее..
$('.map').html('<%= @dataextracted.toinsert %>'.substring(1, '<%= @dataextracted.toinsert %>'.length-2));
Но вместо удаления кавычек («) из него удаляются открывающий и закрывающий теги элемента div (<>).
Также хотелось бы упомянуть, что его прямое жесткое кодирование работает нормально (делалось это только для отладки).
$('.map').html('<div class="fromdatabase"></div>');
Я не могу понять, в чем причина проблемы.
Пожалуйста, помогите..
Ответ №1:
Пожалуйста, используйте метод html_safe следующим образом.
$('.map').html("<%= @dataextracted.toinsert.html_safe %>");
Ответ №2:
Поскольку значение @dataextracted.в toinsert также есть одинарные кавычки, это может иметь какое-то отношение к кавычкам. Попробуйте использовать двойные кавычки:
$('.map').html("<%= @dataextracted.toinsert %>");