에 대한 ActiveModel :: 시리얼의 인스턴스를 가져옵니다,이 작업을 수행 할 수 있습니다임의 (유형 알 수없는) 모델 인스턴스
render :json => {:foo => "bar", :model => ProjectSerializer.new(my_project).as_json}
하지만 내 시나리오에서는 모델 인스턴스의 유형을 미리 알지 못하므로 올바른 직렬기를 다형성으로 결정해야합니다. active_model_serializer 코드를 파고 들자면, 내부적으로 ActiveModel::Serializer.serializer_for
을 사용하지만, 컨트롤러에서 호출 할 수없는 것을 알 수 있습니다. 나는 이런 식으로 작동하게 할 수있다 :
begin
serializer = Object.const_get "#{model.name}Serializer"
object_hash = serializer.new(model).as_json
rescue NameError
object_hash = model.as_json
end
이 작업은 잘되지만, 나는이 코드를 직렬화 기의 세부 사항과 관련이 없다. 임의의 모델에 대한 시리얼 라이저를 찾는 "올바른"방법이 있습니까?
그게 내가 찾고있는 것입니다. 고맙습니다. – gwcoffey