在Rails 3.1 RC中相当于File.readRails.root.join\'public / images / email_banner.png\'?

问题描述

| 在Rails 3.0.X中,此行曾经起作用:
email_banner = File.read(Rails.root.join(\'public/images/email_banner.png\'))
由于Rails 3.1 RC将图像目录移动到app / assets / images中,因此出现错误:
Errno::ENOENT: No such file or directory - /Users/Foo/Sites/foobar/public/images/email_banner.png
我将如何在Rails 3.1 RC中使用它? 供您参考,我的UserMailer类的代码块:
class UserMailer < ActionMailer::Base
  default :from => \"from@example.com\"

  def verification_email(user_id)
    @user = User.find(user_id)
    @verification_url = verification_url(:id => @user.verification_code)

    email_banner = File.read(Rails.root.join(\'public/images/email_banner.png\'))
    attachments.inline[\'email_banner.png\'] = email_banner

    mail(:from => \"Foobar <support@foobar.com>\",:to => \"#{@user.full_name} <#{@user.email}>\",:subject => \'Foobar Verification Email\')
  end
....
我可以使用asset_path吗?     

解决方法

        您可以回答自己的问题,只需要更改调用的路径即可。
email_banner = File.read(Rails.root.join(\'app/assets/images/email_banner.png\'))
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...