【发布时间】:2016-03-18 18:04:06
【问题描述】:
我已成功使用 Paperclip gem 将文件上传到 Amazon S3。我的问题是,如何配置我的模型以根据对象属性更改文件路径?
例如,我希望将 2015 RAM 1500 的图像上传到“cars/2015/RAM/1500/:id”。
这是我尝试过的。 ":id/:style_:extension" 被替换为正确的信息,但其他属性没有 - 即使每辆车都有年份、制造商和型号。
class Car < ActiveRecord::Base
has_attached_file :file, default_url: "/images/:style/missing.png"
validates_attachment_content_type :file, content_type: /\Aimage\/.*\Z/
has_attached_file :file,
:storage => :s3,
:path => "cars/:year/:manufacturer/:model/:id/:style_:extension",
:s3_credentials => Proc.new{|a| a.instance.s3_credentials }
belongs_to :manufacturer
def s3_credentials
{:bucket => ENV['bucket'], :access_key_id => ENV['access_key_id'], :secret_access_key => ENV['secret_access_key']}
end
end
【问题讨论】:
标签: ruby-on-rails amazon-s3 paperclip