我已经尝试了一切,但仍然无法正常工作。
我的系统中有两种类型的应用程序,它们是经过资格预审并发送给贷方的,
1)一个生成pdf 2)其次,应使用活动存储附件并将其附加到ActionMailer
第一个正在工作,第二个正在给我以下错误:
[ActionMailer :: DeliveryJob] [905177a5-b0e9-46f4-ba9a-fc4630e873f9] 执行ActionMailer :: DeliveryJob(作业ID: 来自Async(mailers)的905177a5-b0e9-46f4-ba9a-fc4630e873f9)在140.14毫秒内: Errno :: ENOENT(没有此类文件或目录@ rb_sysopen- https://funderhunt.co/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZ1lIIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--fa91a15681c23d47d767169c7821601aa15ed2b3/Statuses.pages?disposition=attachment):
链接正确无误,
我这部分的邮递员代码如下:
q = 0
statement.files.each do |file|
q += 1
bank_statement = File.read(rails_blob_url(file, disposition: "attachment"))
attachments["statement_#{q}.pdf"] = { :mime_type => 'application/pdf', :content => bank_statement }
end
怎么了?你能帮忙吗?预先感谢。
答案 0 :(得分:3)
如果有人登陆这里寻求一般解决方案:
modelname.attachments.each do |file|
attachments[file.blob.filename.to_s] = {
mime_type: file.blob.content_type,
content: file.blob.download
}
end
答案 1 :(得分:1)
您应该可以执行类似的操作
statement.files.each_with_index do |file, q|
attachments["statement_#{q + 1}.pdf"] = { mime_type: 'application/pdf', content: file.blob.download }
end
file.blob.download
将返回文件内容,类似于File.read
。