2011-06-06 10 views
7

, kullanılan bu hat çalışmaya:Rails 3.1 RC'de File.read (Rails.root.join ('public/images/email_banner.png')) eşdeğeri nedir? Raylar 3.0.x yılında

Errno::ENOENT: No such file or directory - /Users/Foo/Sites/foobar/public/images/email_banner.png 

Nasıl olur: Raylar 3.1 RC uygulaması/varlık/görüntü içine görüntüleri dir taşındı yana

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

, hatası alıyorum Bunu Rails 3.1 RC'de çalışmak için alıyorum? Başvuru için

, benim UserMailer sınıf için kod bloğu:

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 
.... 

kullanabileceğim bir asset_path var mı?

cevap

16

Kendi sorunuza cevap verdiniz, sadece aradığınız yolu değiştirmelisiniz.

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