Как удалить окружающие кавычки («) при использовании в Ruby on Rails?

#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 %>");