Ruby on Rails - best_in_place 清理选项无法正常工作

Ruby on Rails - best_in_place sanitize option doesn't work properly

我认为我正在使用以下代码:

<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 sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore 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.

如果我退出,我的 post.body 会被清理。 但是,如果我登录,文本接受 html 标签。 (我猜没有得到消毒) 在 best_in_place 文档中,它说 sanitize 默认设置为 true。我也试了sanitize: true,还是不行。

有谁知道为什么会这样?

此致

似乎有一个未记录的选项:

raw: true

这将允许呈现纯 HTML,而无需在显示前将其转换为纯文本。其他人在 Github 上发布了同样的问题。看这里:

https://github.com/bernat/best_in_place/issues/520