2012-01-19 2 views
1

데이터 형식 데이터베이스를 쿼리하고 8 비트 부호없는 int를 얻습니다.하지만 루비가 부울로 변경하기 때문에 사용할 수 없습니다.8 비트 부호없는 정수를 정수 또는 문자열로 변환하는 방법

8 비트 부호없는 int를 정수 또는 문자열로 변환 할 수 있습니까? MySQL은 5.0 (은 BIT를 가지고 사전에 어떤 부울 타입을 가지고 있지 않았기 때문에

는 AA 부울 값이 될 수

+0

puts yourint.inspect의 결과를 게시 할 수 있습니까? 너의. 클래스'? –

+0

데이터베이스에 액세스하는 방법을 보여주는 코드가 필요합니다. Sequel ORM을 사용하는 것이 좋지만 데이터베이스에 액세스하는 데는 다른 방법이 많이 있습니다. 드라이버에서 지원하는 것이면 즉시 사용할 수없는 값을 반환하지 않았습니다. –

답변

0

이것은 tinyint(1) (8 비트 정수를) 고려 액티브와 MySQL로 발생하는 감사 지금). 이 동작을 완전히 비활성화 할 수는 있지만 필드 당 또는 모델별로 비활성화하는 방법을 모르므로 비활성화하면 다른 필드에서 "부울"동작을 잃게됩니다. 다행스럽게도 0은 여전히 ​​대부분의 상황에서 거짓 일 것이고 다른 것은 사실 일 것이므로 큰 문제는 아닙니다.

당신은 config/application.rb이 점을 넣어 사용하지 않도록 할 수 있습니다

ActiveRecord::ConnectionAdapters::Mysql2Adapter.emulate_booleans = false 

the ActiveRecord API docs를 참조하십시오.

관련 문제