2013-06-12 1 views
0

나는 그것의 컨트롤러 중 하나에, 자사의 액션 방법 중 하나에 먼저가하는 JSON을 얻을 수있는 서비스를 호출 다음과 마지막 명령에 대한 json_data 가변적이고와로두고 코드를 찾고은 render json: json_data컨트롤러 동작 방법에서 "렌더링"은 어디로 이동합니까?

을 말한다

하지만 그 후에 무슨 일이 일어날 지 이해할 수 없습니까? 실행되는 코드의 다음 줄은 무엇입니까?

답변

3

render json: json_data 실제로 함수에서 실행되는 마지막 문입니다. 실행 후 기능은 자동으로 종료됩니다.

Rails 컨트롤러에서 무언가가 "렌더링"될 때마다 그것은 동작이든 템플릿이든 렌더링이 컨트롤러 기능에서 마지막으로 실행 된 문이됩니다.

render json: json_data의 경우 ActionController은 정의 된 방법으로 전달 된 인수 json_data을 렌더링합니다. 이 경우 JSON이므로 레일즈는 json_data의 내용을 각각의 헤더로 완성 된 JSON 형식의 브라우저로 렌더링합니다. 반대로 문장이 render text: json_data 인 경우 ActionController는 json_data의 내용을 텍스트로 브라우저에 보냅니다.

canonical Rails guide's documentation on render을 확인하십시오. 컨트롤러 동작의 컨텍스트 내에서 호출 할 수있는 몇 가지 예가 나와 있습니다.

+0

예 알아요. 그 후에 그게 무슨 뜻입니까? 누가이 json_data를 제공합니까? –

+0

hmm ok json이 브라우저에 json 데이터를 전달합니다. cool ... 이제이 부분을 이해했습니다 ...하지만이 사용자는 D3, JS를 사용하여 차트를 그리며 해당 차트의 DATA는 json_data ... so입니다. 우리가 브라우저로 보내면 어떻게 될까요? –

+0

데이터가 브라우저로 전송 된 후에 무슨 일이 발생해도 Rails, FYI와는 아무런 관련이 없습니다. 그림에 나타낸 예에서 JSON이 유효하다고 가정하면 브라우저는 데이터를 전달하려는 대상이 사용할 수있는 형식으로 데이터를 구문 분석합니다. – zeantsoi

관련 문제