Ruby Array -> String Conversion Issue


#1

(Newbie Alert!)

I have a CGI script that takes an address and tries to put it as hidden
form data on a new page. “post” is a hash of POST data.

[“addr1”, “addr2”, “city”, “state”, “zip”, “country”].each do |part|
puts “<input type=“hidden” name=”" + part.to_s + “” value="" +
post[part.to_s] + “” />"
end

This code generates the complaint that “part” is an array, and thus
cannot be converted to a string. How do I iterate over each item in that
array of address data?


#2

On Mar 6, 2006, at 5:57 PM, Nathan O. wrote:

This code generates the complaint that “part” is an array, and thus
cannot be converted to a string. How do I iterate over each item in
that
array of address data?

I see no problem with that code, except I would write it as:

%w{addr1 addr2 city state zip country}.each do |part|
puts %{}
end

You don’t have another local variable named part, do you?

When you convert an array to a string, all the elements just get
mashed together: %w{foo bar baz}.to_s -> “foobarbaz”

– Daniel


#3

Ah, my mistake. I assumed it was talking about my “part” variable when
it was talking about my reference to post[part.to_s], which returns an
array. I’m not sure it’s the tidiest fix, but I changed this to
post[part.to_s].to_s, and it works. Well, that part works, now I have
other issues :slight_smile:

%w{addr1 addr2 city state zip country}.each do |part|
puts %{}
end

This looks like one of those things I’m going to have to look up! Thanks
for the pointer!