2013-07-21 3 views
0

렌더링 될 모델의 일부가 아닌 추가 JSON 필드를 포함해야하는 REST API에 대한 JSON 응답을 렌더링해야합니다. 나는 액터 모델에 대해 link을 읽었고, ": methods"옵션을 사용하여 다른 일반 필드를 추가 할 수있는 다른 메소드를 호출 할 것을 제안했다. JSON 응답이 수신 될 때일반 필드를 레일에 추가 JSON 응답

def add_fields 
    { "field1" => "true" } 
end 

if @user.save 
    render :json => @user.as_json(:only => [:username, :org], :methods => [:add_fields]) 
endif 

단, 사용자 이름 & 조직 필드는 JSON 반환됩니다. "add_fields"메소드에 정의 된 추가 매개 변수는 추가되지 않습니다. JSON 응답에 추가 필드가 추가되지 않아 누락 된 부분이 무엇입니까? 또는 JSON 응답에 일반 필드 (모델의 일부가 아님)를 추가하는 더 좋은 방법이 있습니까?

+0

사용자에서 add_fields 메소드를 구현 했습니까? –

+0

내 잘못, 다른 모델에서 메서드를 추가했다. 그것을 지적 주셔서 감사합니다. 문제는 지금 고쳐졌습니다 – sthustfo

+0

잘 들으니, 답장으로 표시 할 수 있도록 답장을 올렸습니다. –

답변

0

사용자에 #add_fields 메서드를 구현하는 것을 잊었을 수 있습니다.

0

난 그냥 내 자신의 사용자 모델에 이것을 테스트하고 그냥 잘 동작했습니다.

2.0.0p195 :002 > user.as_json(only: [:first_name, :last_name], methods: [:full_name]) 
{ 
    "first_name" => "Cody", 
    "last_name" => "Russell", 
     :full_name => "Cody Russell" 
} 

확실한 방법이 정의되어 있습니까? 공개 방법입니까?