2013-01-21 14 views
0

我試圖通過電子郵件使用gmail gem(據我所知,它使用郵件gem發送郵件)在數組中循環訪問數組。在使用Ruby中的郵件gem發送郵件時如何循環訪問數組?

如何使用郵件gem循環訪問電子郵件正文中的數組?看起來很簡單,但是,我無法完成。

下面的方法不起作用,但顯示我想要做什麼。

def deliver_mail(gmail, email, result, request_type) 
    client = Mysql2::Client.new(:host => "localhost", :username => "root", :database => 'bigmake_development') 
    investments = client.query("SELECT * FROM investments WHERE investor_id = '#{result[:id]}'") 

    gmail.deliver do 
    to email.from_addrs 
    subject "My Subject!" 

    body do 
     investments.each do |i| 
     i['target'] 
     i['deal_type'] 
     i['round'] 
     i['deal_date'] 
     end 
    end 
    end 
    puts "Email reply sent to #{email.from_addrs}" 
end 

是我見過的工作的例子通常格式如下:

def deliver_mail(gmail, email, result, request_type) 
    gmail.deliver do 
    to email.from_addrs 
    subject "My Subject!" 
    body "Hello!" 
    # or like this 
    body File.load('body.txt') 
    end 
end 

不過,我不認爲任何這些方法會工作得很好。

回答

2

難道你只是想建立一個字符串?像這樣的東西應該工作:

body_content = "" 
    investments.each do |i| 
    body_content += "#{i['target']} #{i['deal_type']} #{i['round']} #{i['deal_date']}\n" 
    end 
    gmail.deliver do 
    to email.from_addrs 
    subject "My Subject!" 
    body body_content 
    end 

如果你想獲得更多的複雜,我會去了解一下像ERB

相關問題