藤岡です。

> 元のコードを尊重して、こんな(↓)コードはいかがでしょう?改行を含めてな
> いので結果は1行になっちゃいます。適当に改行させるなどしてみてください。
> 
> cgi.select("NAME"=>"number"){
>   (1..3).map{|num|
>     cgi.option("VALUE"=>num.to_s){num.to_s}
>   }
> }
> 
みなさん回答ありがとうございます。
1から3まで回すと言うのはできました。
これをHashでやるにはどうすればいいのでしょうか?
Arrayにはmapがあるのですが,Hashにはありません。

ダメな例
data={
  "fukushima"=>"福島",
  "miyagi"=>"宮城",
  "yamagata"=>"山形"
}
@cgi.out{
  data.each_pair{|key,value|
    @cgi.option("VALUE"=>key){value}+"\n"
  }
}

----
藤岡 岳之/FUJIOKA Takeyuki