2014-07-18 2 views
0

나는 먼저해야 할 일을 정규화 할 수없는 레거시 데이터베이스 테이블을 가지고 있습니다. 예 : 200 개의 열이있는 큰 테이블 하나.루비 serialise 대표 모델

저는 API를 구축 중이며이 데이터를 더 나은 상태로 소비자에게 나타내려고하고 있으며 나중에 데이터베이스 문제를 해결하기 위해 많은 백엔드 시스템이 데이터에 응답하고 변경 사항이 적용되지 않습니다. 쉬운.

활성 레코드를 사용하여 현재 데이터베이스 스키마를 나타내려고했지만 API 소비자에게만 json 데이터로 표시 할 새 모델로 모델 변환을 수행하십시오.

현재 데이터베이스 스키마 제품 테이블 (200 열)

새로운 모델 : 제품 + + 자산 가격 + 위치 + 공급

나는 하드 코드 A의 JSON 문자열을 수 템플릿을 사용하지만 매우 가난한 접근 방식이 아닐 것이라고 생각합니다. 최선의 방법을 제시하기 위해 어떤 방법이나 보석을 권하고 싶습니까?

내가 살펴 보았다 : 당신이 해시를 반환하는 as_json 방법을 정의하는 경우 RABL ActiveModel :: 직렬 변환기

답변

1

, 액티브 당신을 위해 직렬화 처리됩니다. 예 :

class Product < ActiveRecord::Base 
    def as_json options = {} 
    { 
     product: <product value>, 
     pricing: <pricing value>, 
     # ... etc. 
    } 
    end 
end 

지금 당신은 할 수 있습니다 :

render json: @model 
+0

감사 :

> Product.first.to_json => "{\"product\":<product_value> ... }" 

당신은을 통해 컨트롤러에서 JSON 이러한 렌더링 할 수 있습니다! 일종의 serializer 프레임 워크를 사용하여 문제를 복잡하게하려고 노력했습니다. – theog