2011-05-31 18 views
0

我正在開發一個Rails 3應用程序,我現在想將一個圖像作爲附件添加到電子郵件中。如何從我的ActionMailer獲取文件路徑?

我現在在做以下操作:

class CouponMailer < ActionMailer::Base 
    default :from => "[email protected]", :content_type => "multipart/mixed" 

    def send_coupon(recipient, coupon) 
    @coupon = coupon 
    @recipient = recipient 

    attachments.inline["#{coupon.picture.title}"] = File.read(File.join(root_url, coupon.picture.url)) 

    mail(:to => recipient.email, :subject => "a subject") 
    end 
end 

我想要的形象已經從我的RefineryCMS應用上傳,當我複製,當我做File.join(root_url, coupon.picture.url),我得到它粘貼到網址瀏覽器,我可以看到imagen,但是當我運行該應用程序時,出現以下錯誤:

No such file or directory - http://localhost:3000/system/images/BAhbBlsHOgZmIiwyMDExLzA1LzI0LzE3XzQ4XzUxXzcxNF9tYWluX2ltYWdlMi5qcGc/main_image2.jpg 

任何想法?

+0

我不確定你可以從網址中讀取文件。 – 2011-05-31 22:42:03

+0

如何以一種整潔的方式獲得圖像的物理路徑? – 2011-05-31 23:13:10

回答

3

看起來像RefineryCMS使用Dragonfly進行文件上傳。我相信你想調用.path來獲取文件系統路徑。大概就像這樣:

attachments.inline["#{coupon.picture.title}"] = File.read(coupon.picture.file) 

看一看的documentation以獲得更多信息。你應該在General Usage頁面找到你需要的。

+0

謝謝。這非常有用。 – 2011-06-01 04:46:27

+0

沒問題 - 我以前和蜻蜓一起戰鬥過,知道你的痛苦! – 2011-06-01 04:54:44