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 上发布了同样的问题。看这里:
我认为我正在使用以下代码:
<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 上发布了同样的问题。看这里: