0

이었다 :액티브 :: SerializationTypeMismatch : 속성은 해시 있어야하는데,하지만이이 해시 얻을 수있는 문자열

serialize :colors, Hash 

을하지만 나는이 속성의 결과는 다음과 같다 오류가 :

이것을 표시하려면 콘솔에서 오류를보기 위해 "serialize : colors, Hash"에서 "Hash"를 제거해야합니다. 무슨 일이 있었 그러나 해시는 문자열이되었다 내가 '왜 모르는 것 같아 무슨

"--- !map:ActiveSupport::HashWithIndifferentAccess \none: \"#87466d\"\ntwo: \"#307065\"\nthree: \"#c04992\"\nfour: \"#ffffff\"\nfive: \"#636467\"\n" 

확실하지. 나는이 문제에 익숙하지 않았지만, 이제는이 프로젝트의 두 가지 버전이 있습니다. 첫 번째 파일은 레일 2에 있고 다른 파일은 레일 3에 있으며 두 파일 사이를 전환합니다. 레일 3로 가고 레일 2로 돌아온 이후로 오류가 발생했다고 생각합니다. 누구든지이 오류를 해결할 수있는 방법과 발생 원인을 알고 있습니까?

나는 비슷한 포스트를 쳐다 보면서 그것은 나에게 도움이되지 않았습니다 "Attribute was supposed to be a Hash, but was a String"

답변

0

OK I 데이터베이스로 가서 그것을 지워 있도록 NULL에 속성을 설정하여 고정 있도록. 내가 MySQL을 사용로서 나는 다음과 같은 한 :

  • 열기 MySQL의를

    MySQL의 -u 루트 -D의 데이터베이스 _ -p

  • 업데이트 된 값을 다시 설정 MySQL의에서 속성 :

    을 UPDATE colors_table SET colors = null 어디에서 id = 1;

그런 다음 오류없이 레일 콘솔의 값을 업데이트 할 수있었습니다.