2015-01-15 3 views
3

저는 Jason으로 모든 것을 보여주고 싶습니다. 내 API를 개발 중입니다. 컨트롤러에서 render를 호출하고 암시 적 렌더링을 실행하는 것의 차이점은 무엇입니까?

나는이 다음 렌더링

def index 
    @items = Item.all 
end 

: 내가 어떤 레이아웃 파일을 가지고하지 않기 때문에, 이상하다

<html><head><style type="text/css"></style></head><body></body></html> 

요청은을 위해이었다 json mime.

그러나 매개 변수없이 render에 대한 호출을 추가하면 갑자기 jbuilder 템플릿이 사용됩니다. 암시 적 렌더러는 HTML에 렌더링하는 이유는 JSON 응답을 얻기 위해 매개 변수없이와 render를 호출 할 필요가있는 동안

def index 
    @items = Item.all 
    render 
end 

내가 정말 이해가 안 돼요.

누구든지 나에게 설명 할 수 있습니까?

답변

0

여기에 제공된 내용으로 확신 할 수 없지만 이해되는 형식이 전달되었습니다.

그래서 코드 (I 컨트롤러를 필요) 다음과 같다 말할 수 :

class ItemsController < ApplicationController 
    def index 
    @items = Item.all 
    end 
end 

및 경로는 이것이 정말라고하는 것은 이것이다이

resources :items 

과 같습니다

resources :items, defaults: {format: 'html'} 

그래서 다른 작업을 수행하지 않으면 html 응답을 찾고 있다고 가정합니다.

이 시도 : 클래스 ItemsController <와 ApplicationController respond_to : JSON 데프 지수 @items = Item.all 끝 최종 사용자의 뷰에서 다음

만들 index.json.erb 나 :

class ItemsController < ApplicationController 
    respond_to :json 
    def index 
    render json: Item.all.to_json 
    end 
end