Ruby Array -> String Conversion Issue

N

Nathan O.

(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?
 
D

Daniel Harple

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 %{<input type="hidden" name="#{part}" value="#{post[part]}" />}
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
 
N

Nathan O.

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 :)
%w{addr1 addr2 city state zip country}.each do |part|
puts %{<input type="hidden" name="#{part}" value="#{post[part]}" />}
end

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top