在Ruby on Rails中使用<%=%>时如何删除引号“?

问题描述

我有一个Rails应用程序,其中要插入作为其中存储了整个div元素的表之一的列名。我想使用HTML DOM中的jquery将该元素插入到具有“ 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>');

我无法弄清楚是什么原因引起的。

请帮助。

解决方法

请按以下方式使用html_safe方法。

$('.map').html("<%= @dataextracted.toinsert.html_safe %>");
,

由于@ dataextracted.toinsert的值中也包含单引号,因此它可能与引用有关。尝试使用双引号:

$('.map').html("<%= @dataextracted.toinsert %>");