2011-06-06 21 views
7

在Rails 3.0.x中,這條線來工作:Rails 3.1 RC中的File.read(Rails.root.join('public/images/email_banner.png'))等價於什麼?

email_banner = File.read(Rails.root.join('public/images/email_banner.png')) 

由於Rails的3.1 RC轉移到應用程序/資產/圖像目錄的圖像,我得到的錯誤:

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 => "[email protected]" 

    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 <[email protected]>", 
     :to => "#{@user.full_name} <#{@user.email}>", 
     :subject => 'Foobar Verification Email') 
    end 
.... 

是否有asset_path我可以使用嗎?

回答

16

你回答了你自己的問題,你只需要改變你呼叫的路徑。

email_banner = File.read(Rails.root.join('app/assets/images/email_banner.png')) 
相關問題