Forum: Ruby on Rails another select_list question - bad bad booleans

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Craig W. (Guest)
on 2006-03-01 08:36
(Received via mailing list)
I have a select list for a boolean column in postgresql

in the 'model' ...
  YES_NO = [
    [ "Yes",    "1" ],
    [ "No",     "0" ]

in the 'view code' ...

<%= options = [['Accepted?', '']] + Placement::YES_NO
   select("placement", "accepted", options) %>

When creating new records, I can select Yes or No and it writes the
proper value to table.

When I edit existing records, unlike other select list menus which
automatically go to the existing value in the select list, the
'Accepted' list always displays "Accepted?' (the prompt, never the
value) in the pop-up selected list, no doubt because it cannot figure
out the reverse translation of existing column 0's and 1's backwards to
Yes : No logic.

What is the trick to do that?


Kevin O. (Guest)
on 2006-03-01 09:35
(Received via mailing list)
I know this doesn't answer your question... it's late here, but why are
you using a drop down for a binary choice instead of something like a
check box or radio button?

Craig W. (Guest)
on 2006-03-01 09:41
(Received via mailing list)
Probably because I understood drop down boxes (at least until this
issue) and hadn't bothered to do any checkboxes/radio buttons yet. - No
reason that I can't change my bad habits I guess.

It does sort of make sense to use a radio button since either is
required and I suppose I can default it one way for 'new' records. buttons...

Probably too late to tackle tonight as I am pretty much fried but even
with radio buttons, I will have to reverse the binary logic of stored
boolean back to common Yes/No vernacular.


Craig W. (Guest)
on 2006-03-02 03:42
(Received via mailing list)
using radio buttons for a boolean defies logic as I can't make sense of
the api

radio_button_tag(name, value, checked = false, options = {})

from my example below...

<%= radio_button_tag('placement', 'accepted' '?' %>

field is to have either 0 or 1 - display should be "Yes" or "No"

The pop-up list for Yes or No works fine except that in edit mode, the
value already exists in the column and all I really need is for it to
preselect "Yes" or "No" based upon the column contents. The above radio
button api (with absolutely no examples) doesn't make a lick of sense to

Craig W. (Guest)
on 2006-03-02 04:04
(Received via mailing list)
Solved - never mind.

Good lesson learned and anyone else using booleans in postgres

0 and 1 are not what rails derives from tables...TRUE FALSE is what
rails obtains from tables.

This topic is locked and can not be replied to.