From: Mallory Cloutier Date: 2008-08-27T06:43:46+09:00 Subject: Possible bug in CGI::HtmlExtension::popup_menu? Hi all, I'm trying to use popup_menu to generate a select box that remembers what option it had selected when the page was generated. The relevant lines of code are dura_list = cgi.popup_menu("dura", ["300", "Five minutes", (timespan == 300)], ["600", "Ten minutes", (timespan == 600)], ["900", "Fifteen minutes", (timespan == 900)]) where timespan has already been set to either the integer value of the parameter "dura" or to a default value of 300. According to the documentation as I understand it, this should generate
but instead it generates
Looking through the source for popup_menu on http://ruby-doc.org/stdlib/libdoc/cgi/rdoc/index.html, I found if value.kind_of?(String) option({ "VALUE" => value }){ value } else if value[value.size - 1] == true option({ "VALUE" => value[0], "SELECTED" => true }){ value[value.size - 2] } else option({ "VALUE" => value[0] }){ value[value.size - 1] } end end which I think is causing this. Since value[value.size - 1] is false, the last else clause is getting triggered and using that as the option text. I wasn't able to find any other reports of this to see if there's a workaround or fix yet. -- Posted via http://www.ruby-forum.com/.