【问题标题】:html_safe is not working in ruby on railshtml_safe 在 ruby​​ on rails 中不起作用
【发布时间】:2013-05-24 06:53:06
【问题描述】:

我正在使用ckeditor 来保存帖子内容。如果我在我的数据库中保存任何内容,那么它会使用 html 标签保存内容。为了转义 html,我使用了 <%= raw(posts.content) %> 函数。我正在使用Speak.js 添加功能来收听帖子内容。我这里就是这样的……

<script src="speakClient.js"></script>
<img src="img/listenpost.png" alt="Listen Post" onclick="speak('<%= posts_item.content.html_safe %>')" style="cursor:pointer;" />

但这里它使用 html 标签来表达内容。我也尝试过这样做

 speak('<%== posts_item.content %>') or  speak('<%= raw posts_item.content %>')

但是对我没有任何作用。如何转义 html 标签,以便 我的帖子在没有 HTML 标签的情况下听得见

【问题讨论】:

  • speak('&lt;%== posts_item.content %&gt;') - % (&lt;%=) 后面应该只有一个等号
  • speak('&lt;%== posts_item.content %&gt;')speak('&lt;%= raw posts_item.content %&gt;') 都一样
  • 我的错误。我习惯只写一个等号

标签: ruby-on-rails ruby-on-rails-3 erb html-safe


【解决方案1】:

您也应该在 javascript 中转义。使用escape_javascript 助手

speak('<%=j posts_item.content.html_safe %>')

【讨论】:

  • 感谢您的回复,但我在我的 html.erb 文件中尝试过,它不起作用
【解决方案2】:

您声明您已尝试过speak('&lt;%= raw posts_item.content %&gt;')。在这种情况下,原始辅助方法的正确用法是 &lt;%= raw(posts_item.content) %&gt;(注意 posts_item.content 在括号内

【讨论】:

  • Ruby 也提供了转义括号的功能。但我也试着把这个也放了,不工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多