2

我已经将我的项目升级到 Rails 6,现在在我的模型“文章”中使用动作文本。

class Article < ApplicationRecord
    has_rich_text :content
end

但是在我的项目中,大多数上传的图像都太大而无法存储,所以我想在保存之前调整它们的大小。

我应该如何调整附加图像的大小并在“trix-file-accept”侦听器中替换它们?

// app/javascript/trix-editor-overrides.js
window.addEventListener("trix-file-accept", function (event) {
 // ...
})
4

1 回答 1

3

要存储图像,您可以监听trix-attachment-add事件。您可以通过自定义控制器自己附加带有 XMLHttpRequest 的图像,如果您想在保存之前调整附件大小,请尝试使用例如minimagic。检查trix 编辑器页面。相反,如果您只需要显示调整大小的附件,Active Storage 会懒惰地将原始 blob 转换为指定的格式。位于 下,这个部分是在运行脚本app/views/active_storage/blobs/时由 Rails 自动创建的。rails action_text:install对于作为操作文本一部分的每个附件都会调用此方法,您可以在其中调整图像大小:

  <!--app/views/active_storage/blobs/_blob.html.erb-->
  <% if blob.representable? %>
    <%= image_tag blob.representation(resize_to_limit:local_assigns[:in_gallery] ? [ 800, 600 ] :[1024, 768 ]) %>
  <% end %>

更多信息在这里

在 Rails 6 中处理操作文本中的附件

主动存储转换图像

于 2020-02-06T13:16:47.300 回答