我正在尝试使用用户ID编译函数,但无法解决。尝试了不同的方法,但在生产日志中得到零响应。
欢迎任何帮助
def function(user)
attachments['example.pdf'] = File.read("public/#{@user.id}_file.pdf")
@user = user
mail :subject => 'example', to: user.email, from: 'invoice@domain.com', track_opens: true
end
日志:
D,[2019-07-08T10:51:56.838759#64733]调试-: TestMailer#send_sub_month:处理出站邮件的时间为1.1毫秒, [2019-07-08T10:51:56.839003#64733]信息-:已完成500内部 服务器错误(5毫秒)(ActiveRecord:0.4毫秒)F, [2019-07-08T10:51:56.839615#64733]致命-:F, [2019-07-08T10:51:56.839671#64733]致命-:NoMethodError (nil:NilClass的未定义方法'id'):F, [2019-07-08T10:51:56.839710#64733]致命-:F, [2019-07-08T10:51:56.839750#64733]致命-: app / mailers / test_mailer.rb:90:in'send_sub_month'
答案 0 :(得分:0)
日志表明您正在尝试访问空对象的addPage(Page page)
属性。
id
您使用的用户字符串高于定义用户的字符串
尝试一下:
NoMethodError (undefined method id' for nil:NilClass)
已更新。
如果将用户作为参数传递给函数,则没有必要为其创建变量。
def function(user)
@user = user
attachments['example.pdf'] = File.read("public/#{@user.id}_file.pdf")
mail :subject => 'example', to: user.email, from: 'invoice@domain.com', track_opens: true
end