[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby Array -> String Conversion Issue

Nathan O.

3/6/2006 4:57:00 PM

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

--
Posted via http://www.ruby-....


2 Answers

Daniel Harple

3/6/2006 5:27:00 PM

0

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 %{<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


Nathan O.

3/7/2006 12:45:00 AM

0

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!

--
Posted via http://www.ruby-....