ActionText blob 部分不呈现额外元素

ActionText blob partial not rendering extra elements

我正在使用 ActionText 来呈现一些富文本,出于某种原因,我在使用 actiontext 提供的部分向呈现的部分添加额外元素时受到限制

我需要将附加图像环绕在 table 元素周围,以便它们可以在 Outlook 中正确呈现给电子邮件。 ActionText 似乎总是忽略我放入的这个部分中的任何额外元素。任何人都知道为什么会发生这种情况以及是否有任何解决方法?

这是我的部分,其中 table 元素被忽略:

/views/active_storage/blobs/_blob.html.erb

<table>
  <Tr>
    <td>
      <figure class="attachment attachment--<%= blob.representable? ? "preview" : "file" %> attachment--<%= blob.filename.extension %> text-center">
        <% if blob.representable? %>
          <%= image_tag rails_representation_url(blob.representation(resize_to_limit: [600, 400])) %>

          <% if caption = blob.try(:caption) %>
            <figcaption class="attachment__caption text-center">
              <%= caption %>
            </figcaption>
          <% end %>
        <% end %>
      </figure>
    </td>
  </Tr>
</table>

在我的例子中,当我将自定义属性 (data-) 添加到 _blob.html.erb 中的 link_to 帮助器时,它未包含在呈现的 link 标记中。

<% if blob.representable? %>
  <%= link_to image_tag(blob.representation(resize_to_limit: 
local_assigns[:in_gallery] ? [ 800, 600 ] : [ 1024, 768 ]), 
class: 'rounded'), rails_blob_path(blob), { 'data-fancybox': 'gallery' } %>
<% end %>

我发现问题与使用内部方法在渲染前清理字符串的动作文本有关。

我在初始化程序中覆盖了允许的属性和标签:

ActionText::ContentHelper.allowed_attributes.add 'style'
ActionText::ContentHelper.allowed_attributes.add 'controls'

ActionText::ContentHelper.allowed_tags.add 'video'
ActionText::ContentHelper.allowed_tags.add 'source'

我想知道如何在 _blob.html.erb 文件中获取 action_name。 因为我想根据动作名称显示或关闭 link 图像,例如 showedit

# config/initializers/html_sanitation.rb

Rails::Html::WhiteListSanitizer.allowed_tags << 'h2'