我正在制作Rails应用程序并使用paperclip将文件上传到AWS S3存储桶。 在我的模型中,我按以下方式配置:
class File < ApplicationRecord
has_attached_file :attachment,
:url => "/sample_pdf/:basename.:extension",
:path => "/sample_pdf/:basename.:extension"
validates_attachment :attachment,
:content_type => {
:content_type =>
["application/pdf"]
}
end
我遇到的问题是,有时我需要将文件上传到"/sample_pdf/:basename.:extension"
,有时我需要上传到其他路径,例如关注"/another_pdf_folder/:basename.:extension"
。
我不确定是否有办法更改存储文件的路径取决于我的需要。
感谢。
答案 0 :(得分:0)
您可以通过模型中的方法设置路径来动态设置路径。
class File < ApplicationRecord
has_attached_file :attachment,
:url => "/sample_pdf/:basename.:extension",
:path => :attachment_dynamic_path,
validates_attachment :attachment,
:content_type => {
:content_type => ["application/pdf"]
}
def attachment_dynamic_path
condition ? "/sample_pdf/:basename.:extension" : "/another_pdf_folder/:basename.:extension"
end
end