Как преобразовать 8-битный беззнаковый int в целое число или строку в Ruby - PullRequest
1 голос
/ 19 января 2012

Я запрашиваю базу данных формы данных и получаю 8-битное беззнаковое целое, но я не могу его использовать, потому что ruby ​​изменит это на логическое значение.

Могу ли я преобразовать 8-битное целое число без знака в целое число или строку?

Спасибо

1 Ответ

0 голосов
/ 09 апреля 2013

Это происходит с ActiveRecord и MySQL, которые считают tinyint(1) (8-разрядное целое число) логическим значением, потому что MySQL не имел никакого логического типа до 5.0 (теперь он имеет BIT).Вы можете полностью отключить это поведение, но я не знаю, как отключить его для каждого поля или для модели, поэтому вы потеряете «логическое» поведение в других полях, если отключите его.К счастью, это, вероятно, не имеет большого значения, потому что 0 по-прежнему будет ложным в большинстве контекстов, а все остальное будет истинным.

Вы можете отключить его, поместив это в config/application.rb:

ActiveRecord::ConnectionAdapters::Mysql2Adapter.emulate_booleans = false

См. Документы API ActiveRecord .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...