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

时间:2018-07-31 16:33:21

标签: ruby-on-rails ruby best-in-place

我在视图中使用以下代码:

<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,但仍然无法正常工作。

有人知道为什么会这样吗?

最诚挚的问候

1 个答案:

答案 0 :(得分:1)

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

raw: true

这将使纯HTML得以呈现,而无需在显示之前将其转换为纯文本。有人在Github上发布了关于相同问题的文章。看到这里:

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