2017-10-31 14 views
0

포스트 모델과 컨트롤러가 있습니다. 그러나 이미지를 업로드 할 때 이미지 데이터를 해시로 저장합니다.해시를 json 문자열로 변환 - 레일

{ 
     "id": 54, 
     "image_data": "{\"id\":\"461dd0ca2c6ad31995a30039192d43cb.png\",\"storage\":\"store\",\"metadata\":{\"filename\":\"Artboard .png\",\"size\":13081,\"mime_type\":\"image/png\"}}", 
     "user_id": 55, 
     "created_at": "2017-10-31T06:42:35.809Z", 
     "updated_at": "2017-10-31T06:42:35.908Z" 
    } 

하지만 json 문자열로 표시해야합니다. to_json 그러나, 작업 컨트롤러 작품을 만들고 내가 모든 것을 할 것이 일을 할 수있는 방법 나에게 오류 <JSON::ParserError: 743: unexpected token at 'boo'

을주는 등

def as_json(options={}) 
{ 
:image => self.image 
} 
end 

그러나 쇼, 인덱스를 수행 할 때 완벽하게 보여줍니다하지 않습니다 json 문자열로 표시됩니까?

{ 
    "image": { 
     "id": "64b6f1b9654dc0ea91965e2003f7d270.png", 
     "storage": "store", 
     "metadata": { 
      "filename": "Artboard .png", 
      "size": 13081, 
      "mime_type": "image/png" 
     } 
    } 
} 
+0

이미 문자열로 저장됩니다. JSON을 저장하려면 https://apidock.com/rails/ActiveRecord/Base/serialize/class를 사용하거나 JSON을 입력하기 위해 DB의 열을 변경해야합니다 (가능한 경우). – kolas

답변

0

나는 당신의 질문은 당신이 깊이 JSON 객체, 나는이 answer에 봐,이 작업을 수행 할 내장 함수가 없다고 생각이 변환 할 수있는 방법이라고 생각, 그래서 내가 당신을 생각 그것을 JSON으로 깊게 변환하는 함수를 만들어야한다. 도움이 되길 바란다.