Rails 5.2 + Trix + ActiveStorage

Posted

技术标签:

【中文标题】Rails 5.2 + Trix + ActiveStorage【英文标题】: 【发布时间】:2019-05-19 01:02:28 【问题描述】:

如何在配置了 ActiveStorage 的 Rails 5.2 的 Trix 编辑器中上传图片?

我看到一些使用其他上传器的视频,但无法将这个想法适应 ActiveStorage。

其他(可能)解决方案是:将 ActionText 与 Rails 5.2 一起使用。已经可以安全使用了吗?

【问题讨论】:

【参考方案1】:

Active Storage 有直接上传js,只需添加:

//= require activestorage

到你的 application.js,然后创建 trix-attachment-add 事件监听器:

document.addEventListener('trix-attachment-add', function (event) 
  var file = event.attachment.file;
  if (file) 
    var upload = new window.ActiveStorage.DirectUpload(file,'/rails/active_storage/direct_uploads', window);
    upload.create((error, attributes) => 
      if (error) 
        return false;
       else         
        return event.attachment.setAttributes(
          url: `/rails/active_storage/blobs/$attributes.signed_id/$attributes.filename`,
          href: `/rails/active_storage/blobs/$attributes.signed_id/$attributes.filename`,
        );
      
    );
  
);

希望对您有所帮助!

【讨论】:

谢谢!看起来不错的代码,但我已经在准备迁移到 RoR 6,这将“默认”启用此功能? reals 6 实现了吗? 太棒了!反其道而行之怎么办?在“trix-attachment-remove”处从服务器销毁?这不应该是默认值吗?

以上是关于Rails 5.2 + Trix + ActiveStorage的主要内容,如果未能解决你的问题,请参考以下文章

Rails actiontext/trix 显示问题

在 Rails 5.2 中禁用活动存储

Rails 5.2 无法使用 Sublime Text 打开 Rails 凭据

如何在 ActiveStorage (Rails 5.2) 中更新附件

Trix 富文本编辑器在 new.html.erb 中工作,但在 show.html.erb 视图中呈现代码而不是样式文本(在浏览器中显示)

ruby Rails 5.2枚举新用法