【问题标题】:Rails6 resize uploaded images with Action Text & Active StorageRails6 使用 Action Text 和 Active Storage 调整上传图片的大小
【发布时间】:2020-02-06 07:54:12
【问题描述】:

我已将我的项目升级到 Rails 6,现在在我的模型“Article”中使用 Action Text。

class Article < ApplicationRecord
    has_rich_text :content
end

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

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

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

【问题讨论】:

标签: ruby-on-rails trix


【解决方案1】:

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

  <!--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 %>

更多信息在这里

Handling attachments in Action Text in Rails 6

Active Storage Transforming Images

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2011-10-08
    • 1970-01-01
    • 2011-08-25
    • 2014-08-26
    • 2011-05-28
    相关资源
    最近更新 更多