我在视图中使用以下代码:
<div class="col-12 col-md-8">
<% if current_user == @post.user || current_user.try(:admin?) %>
<%=best_in_place @post, :body, :as => :textarea, inner_class: 'form-control', ok_button: 'update', ok_button_class: 'btn btn-outline-success btn-sm'%>
<% else %>
<p class="postbody"><%= sanitize @post.body %></p>
<% end %>
<div class="py-3">
输入文字:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
预期:#code块看上去不接受html标签
Lorem ipsum dolor sit amet,consetetur sadips elitr,sed diam nonumy eirmod tempor invitunt ut labour et dolore magna aliquyam erat,sed diam voluptua。
行为
Lorem <b> ipsum </b> dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
如果我注销,我的帖子将被清理。
但是,如果我登录,则文本接受html标记。 (我想不要消毒)
在best_in_place文档中,它说默认将sanitize设置为true。我也尝试过sanitize: true
,但仍然无法正常工作。
有人知道为什么会这样吗?
最诚挚的问候
答案 0 :(得分:1)
似乎有一个未记录的选项:
raw: true
这将使纯HTML得以呈现,而无需在显示之前将其转换为纯文本。有人在Github上发布了关于相同问题的文章。看到这里: