[RUBY-ON-RAILS] ActiveModel 시리얼에 매개 변수를 전달하는 방법
RUBY-ON-RAILSActiveModel 시리얼에 매개 변수를 전달하는 방법
나는 활성 모델 시리얼을 사용하고 있습니다. 나는 어떤 has_many 활동 모델 이벤트가 있습니다.
나는 처음 n 활동과 이벤트를 반환합니다. 나는 이벤트 직렬로 n은 PARAMS을 통과한다고 생각합니다.
해결법
-
==============================
1.전달 옵션은 @options 해시를 통해 사용할 수 있습니다. 그래서 만약 당신이 할 :
전달 옵션은 @options 해시를 통해 사용할 수 있습니다. 그래서 만약 당신이 할 :
respond_with @event, activity_count: 5
[: activity_count] 시리얼 라이저 내에서 당신은 @options를 사용할 수 있습니다.
-
==============================
2.버전 ~> 0.10.0에서는 @instance_options를 사용해야합니다. 위에서 @ 존 골드 예제를 사용 :
버전 ~> 0.10.0에서는 @instance_options를 사용해야합니다. 위에서 @ 존 골드 예제를 사용 :
# controller def action render json: @model, option_name: value end # serializer class ModelSerializer::ActiveModel::Serializer def some_method puts @instance_options[:option_name] end end
-
==============================
3.@options 해시는 0.9에서 제거; 동등한 방법처럼 보이는 최근에 추가 -
@options 해시는 0.9에서 제거; 동등한 방법처럼 보이는 최근에 추가 -
def action render json: @model, option_name: value end class ModelSerializer::ActiveModel::Serializer def some_method puts serialization_options[:option_name] end end
-
==============================
4.당신과 같이 #serialization_options을 사용할 수 있습니다 0.9.3을 사용하여 ...
당신과 같이 #serialization_options을 사용할 수 있습니다 0.9.3을 사용하여 ...
# app/serializers/paginated_form_serializer.rb class PaginatedFormSerializer < ActiveModel::Serializer attributes :rows, :total_count def rows object.map { |o| FormSerializer.new(o) } end def total_count serialization_options[:total_count] end end # app/controllers/api/forms_controller.rb class Api::FormsController < Api::ApiController def index forms = Form.page(params[:page_index]).per(params[:page_size]) render json: forms, serializer: PaginatedFormSerializer, total_count: Form.count, status: :ok end end
-
==============================
5.여기서 볼 수 있듯이 활성 모델 시리얼의 0.10로서 당신은 instance_options 변수를 통해 임의의 옵션을 전달할 수 있습니다.
여기서 볼 수 있듯이 활성 모델 시리얼의 0.10로서 당신은 instance_options 변수를 통해 임의의 옵션을 전달할 수 있습니다.
# posts_controller.rb class PostsController < ApplicationController def dashboard render json: @post, user_id: 12 end end # post_serializer.rb class PostSerializer < ActiveModel::Serializer attributes :id, :title, :body def comments_by_me Comments.where(user_id: instance_options[:user_id], post_id: object.id) end end
-
==============================
6.serialization_options는 활성 모델 직렬화 0.9.3와 함께 잘 작동합니다.
serialization_options는 활성 모델 직렬화 0.9.3와 함께 잘 작동합니다.
명령을 렌더링과 함께 전달 된 옵션은 자신의 키를 사용하여 시리얼 라이저에 액세스 할 수 있습니다 -> serialization_options [: 키]
-
==============================
7.단지 활동의 이벤트 시리얼 라이저 및 반환 n은 숫자에 활동 방법을 추가되어 간단한 방법. 즉이다.
단지 활동의 이벤트 시리얼 라이저 및 반환 n은 숫자에 활동 방법을 추가되어 간단한 방법. 즉이다.
class EventSerializer < ActiveModel::Serializer has_many :activities def activities object.activities[0..9] # Select whatever you want end end
from https://stackoverflow.com/questions/23347587/how-to-pass-parameters-to-activemodel-serializer by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] belongs_to 관계와 일에 fields_for와 accepts_nested_attributes_for 얻기 (0) | 2020.02.18 |
---|---|
[RUBY-ON-RAILS] 어떻게 RVM을 사용하고 전 세계적으로 사용할 수 보석을 만들려면 어떻게해야합니까? (0) | 2020.02.18 |
[RUBY-ON-RAILS] 레일 '기본 레이크 작업을 재정의 (0) | 2020.02.18 |
[RUBY-ON-RAILS] 레일 서버에 POST의 JSON (0) | 2020.02.18 |
[RUBY-ON-RAILS] 유증 + Omniauth - 어떻게 함께 추가 매개 변수를 전달하는 방법? (0) | 2020.02.18 |