2013-05-24 2 views
0

다음 Ruby 템플릿 핸들러가 Rails 4 애플리케이션에서 호출되지 않는 이유는 무엇입니까? 반환 된 json에는 iddate 필드 대신 Job이 가진 모든 필드가 포함됩니다.Ruby 템플릿 처리기가 Rails 4에서 호출되지 않는 이유는 무엇입니까?

# app/controllers/jobs_controller.rb 
... 
def index 
    @jobs = Job.all 
    render json: @jobs 
end 
... 


# app/views/jobs/index.json.ruby 
jobs = @jobs.map |job| do 
    { 
    id: job.id, 
    date: job.created_at 
    } 
end 

jobs.to_json 

저는 Rails 4.0.0.rc1과 ruby ​​1.9.3p0을 사용합니다.

+0

쉼표로 해쉬를 편집 할 수 있습니까? – kangkyu

답변

0

실제로 템플릿 핸들러를 호출하지 않습니다. 대신, 레일스는 여기에서 @jobs.as_json을 호출하여 해당 모델의 속성이 포함 된 해시를 반환합니다. 이 해시에서 to_json을 호출하고 그 결과를 클라이언트에 반환합니다.

정상적인 행동 과정은 템플릿을 사용하는 대신 모델에서 as_json을 무시하는 것입니다. 위에서 말했듯이 as_json은 사용자에게 반환하려는 정보 만 포함하는 해시를 반환해야합니다. Rails는이 해시를 JSON으로 직렬화합니다.