ruby-on-rails – Errno :: ENOENT – 没有这样的文件或目录@ rb
发布时间:2020-12-17 03:25:15 所属栏目:百科 来源:网络整理
导读:我正在尝试使用 ruby on rails上的动作邮件程序发送电子邮件附件,我一直收到此错误.问题似乎是它无法在我指定的目录中找到该文件,但文件路径有效.我还使用File.exist检查过这个?在控制台中并确认提供的路径评估为true. 这是我的邮件: class OrderMailer Ap
我正在尝试使用
ruby on rails上的动作邮件程序发送电子邮件附件,我一直收到此错误.问题似乎是它无法在我指定的目录中找到该文件,但文件路径有效.我还使用File.exist检查过这个?在控制台中并确认提供的路径评估为true.
这是我的邮件: 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 我还安装了邮件gem来处理编码,正如Action Mailer文档所建议的那样. 任何帮助将非常感激, 解决方法
Rails.root返回一个Pathname对象.路径名#(字符串)将File.join作为路径的字符串,如果它是相对的;如果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' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |