Error: `No handler found` with Base64 for Paperclip 5.2

Error: `No handler found` with Base64 for Paperclip 5.2

我在以 base64 格式上传图片时遇到问题。

回形针版本 5.1.0 或更低版本

一切正常

我的模特:

do_not_validate_attachment_file_type :image

has_attached_file :image

我的控制器操作:

def update
  current_appointment.update(update_params)

  redirect_to check_in_flow.next_step_path
end

private

def update_params
  params.require(:appointment).permit(:image)
end

我的参数:

<ActionController::Parameters {"appointment"=>{"image"=>"data:image/png;base64, iVBORw0KGgo..."}, "controller"=>"my_controller", "action"=>"update"} permitted: false>

升级版本后我总是得到:

 Paperclip::AdapterRegistry::NoHandlerError:
   No handler found for "data:image/png;base64, iVBORw0KGgo..."

有没有人遇到类似的问题,也许新版本不再支持base64了?

回形针版本:5.2.0 或最新

Rails版本:5.1.4

Ruby版本:2.3.4p301

运行 升级后遇到类似问题,发现解决方案是在 config/initializers/paperclip.rb 中添加以下内容:

Paperclip::DataUriAdapter.register

看起来这发生在 5.2.0 之前

https://github.com/thoughtbot/paperclip/pull/2435