2017-11-30 1 views
0

제외 등이 있습니다. postauthor입니다. 게시 세부 정보를 가져올 때 작성자의 세부 정보를 선택적으로 포함하고 싶습니다.레일 시리얼 라이저 - <code>post</code> 및 <code>author</code> - 선택적 사용 협회의 속성 제어는/내가 두 자원이

예 -

GET /authors/1

{ 
    'id': 1, 
    'name': 'Some name', 
    'email': '[email protected]', 
    'address': 'Some address', 
    'mobile': '', 
    'language': 'ruby' 
} 

GET /posts/1

내가하고 싶은

- 대신

{ 
    'id': 1, 
    'created_at': '2017-01-01 10:00:00', 
    'views': 7500, 
    'seo_score': 4, 
    'author': { 
    'id': 1, 
    'name': 'Some name', 
    'email': '[email protected]' 
    } 
} 

,587,946,665,739,983,210
    내가 선택적으로 include, exclude, only 등 내가 별도의 시리얼을 작성할 수 있습니다 알고

  • 및지도를 사용하여 시리얼 라이저에서 협회의 속성을 선택할 수 있는지 알고 싶습니다

  • 그것을 정의하는 동안 협회에 전달하지만, 2 개의 특정 속성을 포함하기 위해 별도의 클래스를 추가하는 것이 합리적이라고 생각하지 않습니다.

  • 나는 또한 내가 연결을 무시하고 모든 속성을 가져오고 선택적으로 몇 가지를 선택할 수 있다는 사실을 알고; 하지만 Serializers이 기본적으로 지원하는지 알고 싶습니다.

답변

0

belongs_to :author_with_partial_details, -> { select [:id, :name, :email] }, :class_name => "Author" 

같은 선택한 열이있는 새로운 연결을 생성하고 또는 당신은 또한 당신의 자신을 만들 수 제이빌더 보석을 사용하여이

Post.find(params[:id]).includes(:author_with_partial_details) 

처럼 뭔가를 사용할 수 있습니다 JSON 구조, 여기에 보석 https://github.com/rails/jbuilder

+0

감사에 대한 링크입니다, 확인 응답 돌아왔다. –

+0

나는 출력 시리얼 라이저에 JSON을 사용하는 방법을 알고 싶습니다. 이 대답은 똑같은 것을 보여 주지만 모델과 컨트롤러를 사용합니다. –

+0

이 시리얼 라이저 및 JSON 응답 https://www.sitepoint.com/active-model-serializers-rails-and-json-oh-my/를 사용하는 방법을 배울 수있는 좋은 읽기입니다 – rajbir

관련 문제