我将带有雾存储的Carrierwave实施到我的Rails应用程序中。此应用程序的整个目的是存储pdf文章,并且能够让有权访问该应用程序的任何人检索它们。现在,我具有存储文章pdf工作的功能。但是,现在我需要能够从S3检索pdf。这可能吗?我在文档中注意到有uploader.retrieve_from_store!("my_file.png")
方法。我试图在控制台中运行它,我收到此错误NoMethodError: undefined method retrieve_from_store! for ArticleUploader:Class
任何帮助都会很棒!到目前为止,我还没有找到合适的答案。谢谢!
class ArticleUploader < CarrierWave::Uploader::Base
storage :fog
def extension_whitelist
%w(jpg jpeg gif png pdf)
end
end
class Article < ApplicationRecord
mount_uploader :file, ArticleUploader
validates :title, presence: :true
validates :publication_date, presence: :true
validates :source, presence: :true
end
答案 0 :(得分:1)
您可以使用carrierwave具有的方法访问它,在您的情况下:
article = Article.find(1)
article.file.url
如果您正在开发,它将输出file
的路径,如果您正在制作并使用S3,它将输出整个网址,例如http://s3.amazonaws.com/<vendor>/articles/1/file.pdf
。
您可以在官方文档中找到更多信息:
https://github.com/carrierwaveuploader/carrierwave#activerecord
还有一个旧的铁轨