0

在 user_mailer.rb

def welcome_email(message)
@message = message   
@image=@message.pics_file_name  #Getting file name
attachments['@image']=File.read('path/@image') #Have to get path here
mail(:to => @message.mailto, :subject => 'Welcome to my site')
end

我正在从数据库中检索文件名。我必须使用 File.read() 中的文件名将文件作为附件发送到指定邮件

4

2 回答 2

3

尝试这个

def welcome_email(message)
@message = message   
@image=@message.pics_file_name  #Getting file name

#you need to give application root path here 
attachments[@image]=File.read("#{Rails.root}/your assets path/#{@image}") #Have to get path here
mail(:to => @message.mailto, :subject => 'Welcome to my site')
end

您的资产路径可能是,如果您将资产存储在公共目录中,那么路径将是

attachments[@image]=File.read("#{Rails.root}/public/assets/#{@image}")
于 2013-07-17T09:29:35.017 回答
1

如果您的目录结构如下所示:

 App base Directory
   |
   |-> mail_resources
        |
        | -> images
              |
              |-> image_file

然后你可以使用

Rails.root.join("mail_resources", "images", "image_file")
于 2013-07-17T09:30:03.777 回答