我有一个路径问题。在我的模型我有以下设置:如何将虾PDF文件存储到亚马逊S3
class Pdffiles < ActiveRecord::Base
belongs_to :user
has_attached_file :invoice_file,
:path => ":rails_root/public/pdffiles/:user_id/:style/:basename.:extension",
:url => "/pdffiles/:user_id/:style/:basename.:extension",
:storage => :s3,
:bucket => '...',
:s3_credentials => {
:access_key_id => '...',
:secret_access_key => '...'
}
end
,并在控制器看起来我的行为是:
pdf = Prawn::Document.new
pdf.move_down 70
pdf.text("Prawn Rocks")
pdf.render_file('prawn.pdf')
pdf_file = File.open('prawn.pdf')
pdff = Pdffile.new()
pdff.pdffile_file = pdf_file
pdff.user_id = todays_user.id
pdff.save
而且我的问题是,这个PDF文件存储在S3服务器,但在不好的地方。而目录app/public/pdff/id_of_a_user/file_name_of_pdf_file
是文件保存到
Users/my_name/my_ruby_root_directory/name_of_my_project/public/pdffiles/id_of_a_user/file_name_of_pdf_file
。
我不完全确定,如果我使用虾来保存PDF文件的权利,但我认为问题可能出现在控制器,我已经设置了位置,创建的文件必须保存在哪里。
我想问你,为了将PDF文件保存到S3的正确目录中,我应该改变什么......所有帮助将不胜感激!
曼尼的感谢,九月