0

gmail gem (私が理解しているように、メールの送信に mail gem を使用します) を使用して、電子メールの本文の配列をループしようとしています。

mail 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

しかし、どちらの方法もうまくいくとは思えません。

4

1 に答える 1

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のようなものを検討します。

于 2013-01-21T22:19:13.907 に答える