在 Ruby on Rails 中使用 <%= %> 时如何删除周围的引号 (")?
Posted
技术标签:
【中文标题】在 Ruby on Rails 中使用 <%= %> 时如何删除周围的引号 (")?【英文标题】:How to remove surrounding quotes (") while using <%= %> in Ruby on Rails? 【发布时间】:2020-12-10 08:34:10 【问题描述】:我有一个 Rails 应用程序,它具有 toinsert 作为其中存储了整个 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>');
我无法弄清楚是什么导致了问题。
请帮忙..
【问题讨论】:
【参考方案1】:请使用html_safe方法如下。
$('.map').html("<%= @dataextracted.toinsert.html_safe %>");
【讨论】:
【参考方案2】:由于@dataextracted.toinsert 的值中也有单引号,它可能与引用有关。尝试使用双引号:
$('.map').html("<%= @dataextracted.toinsert %>");
【讨论】:
以上是关于在 Ruby on Rails 中使用 <%= %> 时如何删除周围的引号 (")?的主要内容,如果未能解决你的问题,请参考以下文章
在 Ruby on Rails 中使用 fork 创建并行进程
ruby on rails 在model中使用enum的注意事项