Rails6 使用 Action Text 和 Active Storage 调整上传图片的大小
Rails6 resize uploaded images with Action Text & Active Storage
我已将我的项目升级到 Rails 6,现在在我的模型中使用 Action Text "Article"。
class Article < ApplicationRecord
has_rich_text :content
end
但是在我的项目中,大多数上传的图片都太大而无法存储,所以我想在保存之前调整它们的大小。
我应该如何调整附加图像的大小并在 "trix-file-accept" 侦听器中替换它们?
// app/javascript/trix-editor-overrides.js
window.addEventListener("trix-file-accept", function (event) {
// ...
})
要存储图像,您可以监听 trix-attachment-add
事件。您可以通过自定义控制器自己使用 XMLHttpRequest 附加图像,如果您想要在保存前调整附件大小,请尝试使用例如 minimagic. Check trix editor 页面。相反,如果您只需要显示调整大小的附件,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,现在在我的模型中使用 Action Text "Article"。
class Article < ApplicationRecord
has_rich_text :content
end
但是在我的项目中,大多数上传的图片都太大而无法存储,所以我想在保存之前调整它们的大小。
我应该如何调整附加图像的大小并在 "trix-file-accept" 侦听器中替换它们?
// app/javascript/trix-editor-overrides.js
window.addEventListener("trix-file-accept", function (event) {
// ...
})
要存储图像,您可以监听 trix-attachment-add
事件。您可以通过自定义控制器自己使用 XMLHttpRequest 附加图像,如果您想要在保存前调整附件大小,请尝试使用例如 minimagic. Check trix editor 页面。相反,如果您只需要显示调整大小的附件,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 %>
更多信息在这里