Rails 5.2 + Trix + ActiveStorage

时间:2018-12-18 15:10:10

标签: ruby-on-rails rails-activestorage

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

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

其他(也许)解决方案是:在Rails 5.2中使用ActionText。已经安全使用了吗?

1 个答案:

答案 0 :(得分:2)

Active Record具有直接上传的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}`,
        });
      }
    });
  }
});

希望这对您有帮助!