gpt4 book ai didi

ruby-on-rails - Errno::ENOENT - 没有这样的文件或目录@rb_sysopen

转载 作者:数据小太阳 更新时间:2023-10-29 07:05:30 27 4
gpt4 key购买 nike

我正在尝试使用 ruby​​ on rails 中的 action mailer 发送电子邮件附件,但我一直收到此错误。问题似乎是它无法在我指定的目录中找到文件,但文件路径是有效的。我还在控制台中使用 File.exist? 检查了这一点,并确认提供的路径计算结果为真。

这是我的邮件:

class OrderMailer < ApplicationMailer   
def purchase(order)
@order = order
attachments[ 'files.zip'] = File.read(Rails.root + '/public/albums/files.zip')
mail to: order.email, subject: "Order Confirmation"
end
end

我还按照 Action Mailer 文档的建议安装了邮件 gem 来处理编码。

任何帮助将不胜感激,-布莱恩

最佳答案

Rails.root 返回一个 Pathname 对象。 Pathname#+(string)File.join string 到路径 if it is relative;如果 string 表示绝对路径(即以斜杠开头),则该路径将被替换

Pathname.new('/tmp') + 'foo'
# => #<Pathname:/tmp/foo>
Pathname.new('/tmp') + '/foo'
# => #<Pathname:/foo>

这意味着,您从错误的路径读取:您想要读取 /path/to/app/public/albums/files.zip,但实际上您正在读取 /public/albums/files.zip,它可能不应该存在。

解决方案:确保附加相对路径:

Rails.root + 'public/albums/files.zip'

关于ruby-on-rails - Errno::ENOENT - 没有这样的文件或目录@rb_sysopen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43445995/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com