하나의 ActiveRecord
모델에서 serialize
을 사용하여 간단한 해시 Array
을 텍스트 데이터베이스 필드로 직렬화합니다. 심지어는 두 번째 매개 변수를 사용하여 역 직렬화를 Array
으로 강제 변환합니다.ActiveRecord의 serialize가 데이터를 무작위로 왜곡합니까?
class Shop < ActiveRecord::Base
serialize : recipients, Array
end
잘 작동하는 것 같다하지만, 몇 가지 요청 후, recipients
의 내용 HashOfIndifferentAccess
해시 대신 배열로 변합니다. 이것은 모델을 몇 번 다시로드 한 후에 만 발생하며 프로덕션 환경에서만 테스트 또는 콘솔에서 재현 할 수 없었습니다.
루비와 AR의 어떤 버전 –
데이터베이스의받는 사람 속성이 어떤 데이터 유형입니까? – Tilo
나는 완전히 이해하지 못한다. 예상했던 해시로 채워진'HashWithIndifferentAccess' 또는'HashesWithIndifferentAccess'로 채워진'Array'를 되찾았습니까? 직렬화 유형 불일치 오류가 발생했거나 사용자 정의 코드에서 문제가 발생 했습니까? 던져진 예외가있는 경우 스택 추적 및 오류 메시지 등을 포함하는 것이 매우 유용합니다. –