【问题标题】:Dragonfly adding images to store before Model.save蜻蜓在 Model.save 之前添加图像到存储
【发布时间】:2012-08-05 09:15:52
【问题描述】:

Dragonfly 文档暗示在保存模型之前不会将任何内容写入数据存储:

当模型被保存时,一个 before_save 回调将数据持久化到 应用配置的数据存储

使用Rails和Dragonfly 0.9.12,我有一个image_accessor :image的模型文章,我的商店是S3。 以下内容足以在 S3 中存储图像:

  1. 浏览器上传图片或提供image_url。
  2. 新模型实例:@article = Article.new(params[:article]))

就是这样。如果我通过after_assign :resize_image 添加处理,则存储处理后的版本。

这种行为是故意的吗?它导致杂散图像上传到 S3。我并不总是将@article 保存到数据库,但我仍然需要 Dragonfly 来调整图像大小。 (如果你很好奇,我会使用 Base64.encode64(@article.image.data) 将其作为嵌入数据发送回浏览器进行预览。)

为了进行调查,我断开了互联网以中断商店运营。这是跟踪的相关部分:

dragonfly (0.9.12) lib/dragonfly/active_model_extensions/attachment.rb:179:in `store_job!'
dragonfly (0.9.12) lib/dragonfly/active_model_extensions/attachment.rb:118:in `retain!'
dragonfly (0.9.12) lib/dragonfly/active_model_extensions/class_methods.rb:63:in `block (3 levels) in register_dragonfly_app'
mongoid (3.0.3) lib/mongoid/attributes/processing.rb:102:in `process_attribute'
mongoid (3.0.3) lib/mongoid/attributes/processing.rb:27:in `block in process_attributes'
mongoid (3.0.3) lib/mongoid/attributes/processing.rb:25:in `each_pair'
mongoid (3.0.3) lib/mongoid/attributes/processing.rb:25:in `process_attributes'
mongoid (3.0.3) lib/mongoid/document.rb:147:in `block in initialize'
mongoid (3.0.3) lib/mongoid/threaded/lifecycle.rb:84:in `_building'
mongoid (3.0.3) lib/mongoid/document.rb:142:in `initialize'

我该如何解决这个问题?谢谢。

【问题讨论】:

    标签: amazon-s3 dragonfly-gem


    【解决方案1】:

    这是由使用<%= f.hidden_field :retained_image %>引起的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      相关资源
      最近更新 更多