【问题标题】:How to download ActiveStorage attachments to tmpdir如何将 ActiveStorage 附件下载到 tmpdir
【发布时间】:2018-06-15 17:07:12
【问题描述】:

目标是将附件下载到 tempdir 以供后续使用。 The documentation 说要使用 ActiveStorage::Blob#open 这似乎很简单。

我遇到了错误,所以请解释我做错了什么:

  1. 调用@flower.photo.open 会导致NoMethodError (private method 'open' called for #<ActiveStorage::Attached::One:0x00007f9780625100>)
  2. 调用@flower.photo.blob.open` 得到NoMethodError (private method 'open' called for #<ActiveStorage::Blob:0x00007f9780615c50>)

正在检查 the source code 我不确定为什么会收到私有方法错误。

【问题讨论】:

  • "private method 'open'" 错误通常意味着您不小心拿起了Kernel#open,但ActiveStorage::Blob 不应该发生这种情况。 @flower.photo 是如何定义的?
  • 它是如何定义的?好吧,@flower.photo 使用标准 ActiveStorage 方法成功附加。我知道这是因为@flower.photo.attached? 返回true 并且我可以成功地在视图中显示照片。
  • 但是在Flower 模型中它是什么样子的呢?
  • 它看起来应该在模型中:has_one_attached :photo 虽然我在下面发布了答案。我没有做错任何事……除了不使用边缘导轨。 ;-)

标签: ruby-on-rails rails-activestorage


【解决方案1】:

该方法直到明年 Rails 6 才发布。

similar SO question here 提供更多信息和建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-25
    • 2022-10-16
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    相关资源
    最近更新 更多