簡體   English   中英

具有多個串行器軌道的串行器中的陣列

[英]Array in serializer with multiple serializer rails

我在處理后得到數組。

gem 'active_model_serializers'

現在我想使用serializer以json格式發送數據。

但是當我調用序列化程序時,它不會因為Array而得到對象。

控制器 -

def index
  question = user.questions.available 
  answer = user.where(:answer => params[:ans])
  render :json => {:qust => question, :each_serializer => QuestionSerializer,
                   :ans => answer, :each_serializer => AnswerSerializer}
end

question_serializer.rb

class QuestionSerializer < ActiveModel::Serializer
  attributes :id, :question, :type
end

answer_serializer.rb

class AnswerSerializer < ActiveModel::Serializer
  attributes :id, :answer, :date

  def date
   object.date = "..."
  end
end

嘗試這個:

render json: {
  qust: ActiveModel::ArraySerializer.new(question, each_serializer: QuestionSerializer),
  ans: ActiveModel::ArraySerializer.new(answer, each_serializer: AnswerSerializer),
}

附言:

  • 注意你的命名,在使用集合時使用復數。
  • answer = user.where(:answer => params[:ans])看起來很糟糕

或者像這樣:

options        = {each_serializer: QuestionSerializer}
user_questions = user.questions.available 
questions      = ActiveModelSerializers::SerializableResource.new(user_questions, options)

render json: {
   qust: questions.as_json
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM