Paperclip提供了一种.url方法,用于获取附件的URL以包含在视图中。
我需要在Ruby中实际打开附件作为文件。
大约六个月前,Paperclip的最新版本允许我们在附件对象上调用to_file。虽然没有记录,但它始终如一。但在某些时候它停止了工作。
我希望能够在验证器中打开文件本身(在这种情况下它尚未保存到其最终位置),或者在保存ActiveModel对象后从完全其他方法打开文件(在这种情况下,文件已移至最终位置,该位置可能位于Amazon S3上。
似乎选项是:
file = File.new(object.attachment.path)
...仅适用于本地文件,而不适用于S3。或者:
file = object.attachment.queued_for_write[:original]
...仅在第一次保存之前有效(我认为)?
似乎应该有一个简单的方法来打开文件(在类似Amazon S3的情况下,可能涉及将其复制到临时位置)并且我猜测答案与之相关io_adapters,但我已经阅读了代码(以及相当多的StackOverflow问题)并且我仍然感到难过。
是否有标准方法可以将回形针附件打开为适用于所有情况的文件?
答案 0 :(得分:4)
这将为您提供文件(假设您的模型附加了file
require 'open-uri'
file = open(yourmodel.file.url)