2012-03-23 4 views
0

여러 레벨의 중첩 된 자식 개체가있는 모델 개체에 대한 레일스 응용 프로그램의 뷰에 대해 json을 렌더링하고 있습니다. 처음에는 모델 객체에서 아무것도 추가/수정/이름을 바꿀 필요가 없었으므로 to_json이 충분했습니다. 그러나 이제 model 객체에없는 json (일부 중첩 된 자식 객체의 경우)에 일부 URI를 삽입해야합니다. 내가 RABL을 사용하고 있지만 지금까지 보았던 것에서 볼 때, 나는 to_json의 기본 동작을 원하는 객체에 대해 더 많은 형식을 지정해야 할 필요가있는 것처럼 보였다. 일부 자식 개체에 URI를 추가 할 수있는 지점. What I 나는 개체의 그래프에서 to_json을 사용하고 특정 유형의 개체 만 다르게 처리해야한다고 지정할 수있는 방법을 원합니다. 누구든지 RABL과 비슷한 것을했거나보다 나은 접근법을 알고 있습니까?to_json이 * 거의 * 충분 함

답변

1

추가 작업을 위해 모델에서 as_json을 재정의 할 수 있습니다. 당신이 방법 to_json 호출 할 때 예를

def some_url 
    "http://google.com" 
end 



def as_json(options={}) 
    options = User.json_options(options) 
    super(options) 
end 

def self.json_options(options = {}) 
    options ||= {} # need this because to_json without options will pass nil to as_json 
    options[:methods] ||= [] 
    options[:methods] << :some_url 
    options 
end 

를 들어

는 다음이 포함됩니다.

관련 문제