在Rails中的text_field中输入的电话通知中发送相同的文本

时间:2014-09-17 11:42:58

标签: ruby-on-rails-4

发送电话通知时

预期输出:

[Hi there! What's up?]

当前输出:

[Hi there! What&#39s up?]

我需要避免'被转换为&#39

<%= f.text_field :notification, :class => "charcounter form-control", :data => {:allowed => FeedbackReply::MAX_MESSAGE_LENGTH, :warning => 30} %> 

1 个答案:

答案 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>" %>

将输出:

&lt;script&gt;alert(&#x27;Hello!&#x27;)&lt;/script&gt;

进入您的HTML源代码(是的,非常安全!),同时:

<%= "<script>alert('Hello!')</script>".html_safe %>

会弹出警告对话框(你确定这是你想要的吗?)。

SafeBuffers and Rails 3.0 ”是关于SafeBuffers(执行html_safe魔术的类)如何工作的一个很好的解释。