2011-06-06 4 views
7

रेल 3.0.x में, इस्तेमाल किया इस लाइन काम करने के लिए:रेल 3.1 आरसी में Rail.read (Rails.root.join ('public/images/email_banner.png') के बराबर क्या है?

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

कैसे होगा:

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

के बाद से रेल 3.1 आर सी एप्लिकेशन/आस्तियों/छवियों में छवियों dir चले गए, मैं त्रुटि मिलती है मुझे यह रेल 3.1 आरसी में काम करने के लिए मिलता है?

आपके संदर्भ के लिए

, मेरे 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')) 
संबंधित मुद्दे