我正在学习一个基本的联系表单,作为学习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隐式转换为整数。”
我在这里做错了什么?
谢谢!
答案 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,
.....