在 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 将该元素插入到具有类“ma​​p”的元素中。我正在进行 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的注意事项

在 ruby​​ on rails 中单击时显示元素

如何在 ruby​​ on rails 和 javascript 中使用 data-post 接收数据

ruby on rails 在关联调用中使用变量

Ruby on Rails:使用清理助手在代码块内允许小于号“<”