I think the real question is why on earth would you want to have those
column names in the first place? If you have to work with a legacy
db, sure, but I'd never ever ever do that in a migration myself.
And if I did have a legacy db with that schema, I'd just write some
sensible methods:
def male=(val)
write_attribute :male?, val
end
def male
read_attribute :male?
end
def male?
!!male
end
Normal assignment, raw attribute, and predicate...the Rails Way.