데이터 출력을 조작하기 위한 사용자 지정 직렬 변환기 소개
사용자 지정 serializer는 특정 시나리오나 표시 용도로 만들 수 있는 기존 serializer의 버전입니다. Ruby on Rails로 사용자 정의 직렬 변환기를 생성하는 것은 명령만큼 간단합니다.
rails g serializer /YourSerializerName/
사용자 정의 직렬 변환기는 다른 직렬 변환기와 정확히 동일한 방식으로 작동하지만 직렬 변환기를 가져오고 컨트롤러의 모든 메서드에서 블랭킷으로 사용하는 대신 메서드에서 직렬 변환기를 특별히 호출한다는 주의 사항이 있습니다. 와 같은…
def index
bears = Bear.all
render json: bears, serializer: CustomBearSerializer, status: :ok
end
이것은 실제로 메서드에 추가하기가 매우 간단하지만 사용자 지정 serializer에 제공할 수 있는 많은 기능이 있습니다. Ruby 애플리케이션에서 렌더링하는 각 해시와 관련된 데이터를 표시하는 데 사용할 수 있습니다. 표시되는 형식을 변경하거나 데이터 출력 자체를 변경하여 특정 출력에 더 많은 데이터를 추가하거나 더 적은 데이터를 표시할 수 있습니다. 또 다른. 이와 같이!
BearSerializer
attributes: :name, :weight, :packname
이것이 출력 또는 입력에 데이터를 표시하는 데 사용하는 기본 직렬 변환기라고 가정해 보겠습니다. 어떤 방법을 만들기로 결정하든 이 정보와 함께 데이터를 출력합니다. 하지만 id로 특정 곰을 요청할 때 해당 곰 새끼 목록을 추가하고 싶다면 어떻게 해야 할까요? 그렇다면 해당 show 메서드를 호출하려면 사용자 지정 직렬 변환기가 필요합니다! 이렇게 보일 것입니다.
CustomBearSerializer
attributes: :name, :weight, :packname
has_many :cubs
Bear와 Cub 관계 및 모델이 설정되어 있다고 가정하면 위의 이 사용자 지정 serializer만 있으면 새끼 목록을 출력에 추가할 수 있습니다. 이제 이전 index 예제에서 했던 것처럼 해당 serializer를 show 메서드에 추가하겠습니다!
def show
bear = Bear.find(params[:id])
render json: bear, serializer: CustomBearSerializer, status: 200
end
우리는 거기에 갈! 이제 ID 번호로 특정 곰을 호출하여 show 메서드를 호출하면 해당 곰에 속한 새끼 목록도 렌더링됩니다. 이 사용자 정의 직렬 변환기는 하나의 show 메서드에서만 호출되었으므로 데이터에 새끼 목록이 포함되는 유일한 시간이 됩니다!
이것은 커스텀 직렬 변환기의 매우 기본적인 버전이었지만 각 상황에 대해 원하는 정확한 방식으로 데이터를 렌더링하기 위해 레일로 코딩할 때 매우 유용할 것입니다. 이 레일 주제에 대한 나의 이상한 딸꾹질 이후, 이 글을 읽고 있는 사람이 개념을 더 잘 이해하는 데 도움이 되기를 바랍니다. 그것을 가지고 연습하고 놀면서 자신의 코드에 무엇을 표시할 수 있는지 확인하십시오! 행운을 빕니다. 언제나처럼 행복한 코딩하세요!!
Reference
이 문제에 관하여(데이터 출력을 조작하기 위한 사용자 지정 직렬 변환기 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/loganzimm4/a-personal-journey-with-custom-serializers-49od텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)