发送电话通知时
预期输出:
[Hi there! What's up?]
当前输出:
[Hi there! What's up?]
。
我需要避免'被转换为&#39
<%= f.text_field :notification, :class => "charcounter form-control", :data => {:allowed => FeedbackReply::MAX_MESSAGE_LENGTH, :warning => 30} %>
答案 0 :(得分:0)
我认为在这种情况下有一个特殊字符的问题,您不需要html_safe
,但您需要使用 sanitize
这个sanitize
帮助程序将对所有标记进行html编码并删除所有未明确允许的属性。
我不确定,但你可以试试这个:
<%= @yourobject.notification.html_safe %>
注意: html_safe
实际上“将字符串”设置为HTML安全(它比这更复杂,但基本上就是这样)。这样,您可以随意从帮助程序或模型返回HTML安全字符串。除非您确定您的字符串不是nil
,否则请勿使用html_safe。如果字符串返回nil
html_safe
不 HTML-escape你的字符串。实际上,它会阻止你的字符串被转义。
示例:强>
<%= "<script>alert('Hello!')</script>" %>
将输出:
<script>alert('Hello!')</script>
进入您的HTML源代码(是的,非常安全!),同时:
<%= "<script>alert('Hello!')</script>".html_safe %>
会弹出警告对话框(你确定这是你想要的吗?)。
“ SafeBuffers and Rails 3.0 ”是关于SafeBuffers(执行html_safe魔术的类)如何工作的一个很好的解释。