Another select_list question - bad bad booleans


#1

I have a select list for a boolean column in postgresql

in the ‘model’ …
YES_NO = [
[ “Yes”, “1” ],
[ “No”, “0” ]
].freeze

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?

Thanks

Craig


#2

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?

_Kevin


#3

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
me.

Craig


#4

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.

Hmm…radio 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.

Thanks

Craig


#5

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.

Craig