与Rails管理员一起使用Cloudinary、Carrierwave、Ckeditor时出现问题

与Rails管理员一起使用Cloudinary、Carrierwave、Ckeditor时出现问题,ckeditor,carrierwave,rails-admin,cloudinary,Ckeditor,Carrierwave,Rails Admin,Cloudinary,我正在尝试将Ckeditor与Rails Admin一起使用,我将Carrierwave和云存储用作Cloudinary。在完成了我所能看到的所有设置之后,CKeditor能够将文件保存在本地存储上,然后它创建了一个Cloudinary URL,该URL实际上应该存储图像。但问题是图像没有从本地文件夹上传到Cloudinary,而我的简单文件上传工作正常,没有任何问题 我这里还有一个问题-当我使用Cloudinary时,存储名称应该是什么?至于file和amazons3,我们有file和S3两个

我正在尝试将Ckeditor与Rails Admin一起使用,我将Carrierwave和云存储用作Cloudinary。在完成了我所能看到的所有设置之后,CKeditor能够将文件保存在本地存储上,然后它创建了一个Cloudinary URL,该URL实际上应该存储图像。但问题是图像没有从本地文件夹上传到Cloudinary,而我的简单文件上传工作正常,没有任何问题

我这里还有一个问题-当我使用Cloudinary时,存储名称应该是什么?至于file和amazons3,我们有file和S3两个名称

请回答


感谢

Cloudinary的Ruby GEM包含一个CarrierWave插件,我们的许多客户都在使用该插件。我们不知道Ckeditor有什么特殊问题(但我们还没有测试过)

当您使用Cloudinary的CarrierWave插件时,只需将
包含Cloudinary::CarrierWave
添加到您的uploader类。它将Cloudinary定义为存储引擎和图像处理服务(两者都是基于云的)。只需在uploader类中注释掉
storage:file
行即可。所有图像将直接上传到Cloudinary,所有转换版本将使用Cloudinary URL生成

请查看文档页面中的示例上载程序代码:


如果问题仍然存在,如果您可以共享上载程序代码,我们将帮助您确保其定义正确。

Cloudinary的Ruby GEM包含一个CarrierWave插件,我们的许多客户都使用该插件。我们不知道Ckeditor有什么特殊问题(但我们还没有测试过)

当您使用Cloudinary的CarrierWave插件时,只需将
包含Cloudinary::CarrierWave
添加到您的uploader类。它将Cloudinary定义为存储引擎和图像处理服务(两者都是基于云的)。只需在uploader类中注释掉
storage:file
行即可。所有图像将直接上传到Cloudinary,所有转换版本将使用Cloudinary URL生成

请查看文档页面中的示例上载程序代码:


如果问题仍然存在,如果您可以共享上载程序代码,这样我们就可以帮助确保正确定义它。

确保删除对CarrierWave.config.storage=:file的任何引用

如果上载不起作用,您需要在以下几个地方执行此操作:

在/config/initializers/carrierwave_init.rb中删除对以下内容的所有引用:

config.storage = :file
在您的上传程序中,删除并引用以下内容:

storage :file

确保删除对CarrierWave.config.storage=:文件的所有引用

如果上载不起作用,您需要在以下几个地方执行此操作:

在/config/initializers/carrierwave_init.rb中删除对以下内容的所有引用:

config.storage = :file
在您的上传程序中,删除并引用以下内容:

storage :file

我对ckeditor也有意见。编辑您的
CkeditorAttachmentFileUploader
,使其看起来与以下内容类似:

class CkeditorAttachmentFileUploader < CarrierWave::Uploader::Base
  include Ckeditor::Backend::CarrierWave
  include Cloudinary::CarrierWave

  [:extract_content_type, :extract_size, :extract_dimensions].each do |method|
    define_method :"#{method}_with_cloudinary" do
      send(:"#{method}_without_cloudinary") if self.file.is_a?(CarrierWave::SanitizedFile)
      {}
    end
    alias_method :"#{method}_without_cloudinary", method
    alias_method method, :"#{method}_with_cloudinary"
  end

  def extension_white_list
    Ckeditor.attachment_file_types
  end
end

同样,对于
Ckeditor::AttachmentFile类,如果您有它的话。

我对Ckeditor也有问题。编辑您的
CkeditorAttachmentFileUploader
,使其看起来与以下内容类似:

class CkeditorAttachmentFileUploader < CarrierWave::Uploader::Base
  include Ckeditor::Backend::CarrierWave
  include Cloudinary::CarrierWave

  [:extract_content_type, :extract_size, :extract_dimensions].each do |method|
    define_method :"#{method}_with_cloudinary" do
      send(:"#{method}_without_cloudinary") if self.file.is_a?(CarrierWave::SanitizedFile)
      {}
    end
    alias_method :"#{method}_without_cloudinary", method
    alias_method method, :"#{method}_with_cloudinary"
  end

  def extension_white_list
    Ckeditor.attachment_file_types
  end
end

同样,对于
Ckeditor::AttachmentFile类,如果您有它的话。

我很抱歉没有响应。是的,当然这是代码,我已经粘贴了上传的carrierwave和我用于CKEditor的carrierwave。这里需要注意的是,如果我从Ckeditor上传程序中删除Storeage:file,我会出错,无法继续。我很抱歉没有回应。是的,当然这是代码,我已经粘贴了上传的carrierwave和我用于CKEditor的carrierwave。这里需要注意的是,如果我从Ckeditor上传程序中删除Storeage:file,我会出错,无法继续。