0

I'm working on a basic contact form as part of learning Ruby where there are a string of email addresses in an array and the message in a contact form is sent to each one through 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

I'm doing something wrong with the loop, as it throws the error "no implicit conversion of String into Integer."

What am I doing wrong here?

Thanks!

Sciguy77
  • 349
  • 6
  • 14

2 Answers2

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

When you do ADDRESSES_BOOK[address] is like saying ADDRESSES_BOOK['example1@example.com'] which is trying to access the value of the array at index 'example1@example.com', but array indexes are integers and start from 0.

So

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

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

The .each will iterate over each element in the array and put it address

Sully
  • 14,672
  • 5
  • 54
  • 79
0

try this

.....
    :to => address,
    :from => %("#{name}" <#{email}>),
    :reply_to => email,
    :subject => subject,
    :body => contactFormMessage,
.....
Roman Kiselenko
  • 43,210
  • 9
  • 91
  • 103