Sqlite가있는 레일의 부울
-
06-07-2019 - |
문제
나는 여전히 레일이있는 약간의 멍청이이지만 조금 이상하게 보이는 무언가를 가로 질러 달리고 있습니다. 데이터베이스의 모델에 부울 필드를 추가했습니다.
t.column :admin, :bool, :default => false, :null => false
그러나 SQLITE3 데이터베이스의 값은 't'
또는 'f'
. 괜찮지 만 여전히 기대할 것입니다 user.admin?
값이 있으면 거짓을 반환합니다 'f'
. 다음 콘솔 세션에서 볼 수 있듯이 그렇지 않습니다.
>> user = User.first
=> #<User id: 2, login: "matt", name: "", email: "google.ninja@no-spam.com", crypt
ed_password: "c6740f820b4cbf6e3d88188719f23cd3053a54f0", salt: "5629f5ee09f51543
a7d64dd903b8d9e53aa43a24", created_at: "2009-04-26 23:08:05", updated_at: "2009-
04-26 23:10:38", remember_token: nil, remember_token_expires_at: nil, admin: "t"
>
>> user.admin?
=> true
>> user.admin = false
=> false
>> user.save
=> true
>> user = User.first
=> #<User id: 2, login: "matt", name: "", email: "google.ninja@no-spam.com", crypt
ed_password: "c6740f820b4cbf6e3d88188719f23cd3053a54f0", salt: "5629f5ee09f51543
a7d64dd903b8d9e53aa43a24", created_at: "2009-04-26 23:08:05", updated_at: "2009-
05-06 03:32:23", remember_token: nil, remember_token_expires_at: nil, admin: "f"
>
>> user.admin?
=> true
이것은 sqlite에서 이상한 문제입니까, 아니면 내가 무언가를 얻지 못하는가?
해결책
다른 팁
문제는 데이터베이스 마이그레이션에 문제가있을 수 있습니다. 나는 그렇게 생각하지 않습니다 : bool은 사용하기에 적합한 데이터 유형 이름입니다. 시도 : 부울 대신, 예를 들어
t.column :admin, :boolean, :default => false, :null => false
제휴하지 않습니다 StackOverflow