对于循环通过字符串数组与array.each不工作?

时间:2013-11-28 08:27:40

标签: ruby actionmailer pony

我正在学习一个基本的联系表单,作为学习Ruby的一部分,其中数组中有一串电子邮件地址,并且通过Rails Pony将联系表单中的消息发送给每个人。

ADDRESSES_BOOK = ['example1@example.com', 'example2@example.com']
def deliver
return false unless valid?
ADDRESSES_BOOK.each do |address|
  Pony.mail({
    :to => ADDRESSES_BOOK[address],
    :from => %("#{name}" <#{email}>),
    :reply_to => email,
    :subject => subject,
    :body => contactFormMessage,
  })
end
end

我在循环中做错了,因为它抛出错误“没有将String隐式转换为整数。”

我在这里做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

ADDRESSES_BOOK.each do |address|
  Pony.mail({
    :to => address
    #...
  })
end

执行ADDRESSES_BOOK[address]就像说ADDRESSES_BOOK['example1@example.com']试图访问索引'example1@example.com'的数组值,但数组索引是整数,从0开始。 / p>

所以

ADDRESSES_BOOK[0] # returns 'example1@example.com'

ADDRESSES_BOOK[1] # returns 'example2@example.com'

.each将迭代数组中的每个元素并将其address

答案 1 :(得分:0)

试试这个

.....
    :to => address,
    :from => %("#{name}" <#{email}>),
    :reply_to => email,
    :subject => subject,
    :body => contactFormMessage,
.....