Ruby on rails 活动模型序列化程序:呈现值数组仅呈现第一个值

Ruby on rails 活动模型序列化程序:呈现值数组仅呈现第一个值,ruby-on-rails,active-model-serializers,Ruby On Rails,Active Model Serializers,我有一个值数组:[1,2,3,4,5] 我希望使用json\u api呈现这些内容。我已经成功地将ActiveModelSerializers::Model用于其他目的,以呈现单个普通Ruby对象。但在本例中,我有一个对象数组。渲染时,AMS仅渲染第一个对象 安装程序 模型 我希望所有5个模型都被渲染,但似乎只有第一个模型被渲染。有什么想法吗 使用active\u model\u序列化程序(0.10.7)我确信您不再需要它,但这可能会对某些人有所帮助 我有一个类似的问题:在我的例子中,问题是我使

我有一个值数组:
[1,2,3,4,5]

我希望使用
json\u api
呈现这些内容。我已经成功地将
ActiveModelSerializers::Model
用于其他目的,以呈现单个普通Ruby对象。但在本例中,我有一个对象数组。渲染时,AMS仅渲染第一个对象

安装程序 模型 我希望所有5个模型都被渲染,但似乎只有第一个模型被渲染。有什么想法吗


使用
active\u model\u序列化程序(0.10.7)

我确信您不再需要它,但这可能会对某些人有所帮助

我有一个类似的问题:在我的例子中,问题是我使用了一个id=nil的资源。 它只生成了一个条目! 一旦我用唯一标识符填充了
id
,它就按预期工作了

我意识到阅读json:api格式(),因为其中一个要求是:

每个资源对象必须包含一个id成员和一个类型成员。id和类型成员的值必须是字符串。


我希望这能有所帮助

您确定您有5个独特的条目吗?运行
rails控制台中的
Option.pluck(:step).uniq能给您带来什么?是的,它们是独一无二的。运行
Option.pull(:step).uniq.map{v | step.new(value:v)}
生成5个对象,值为1-5。Try
render json:steps,each_serializer:step serializer
找到解决方案了吗?
class Step < ActiveModelSerializers::Model
  attr_accessor :value
end
class StepSerializer < ActiveModel::Serializer
  attributes :value
end
class Api::StepsController < Api::BaseController

  def index
    steps = Option.pluck(:step).uniq.map { |v| Step.new(value: v) }
    render json: steps
  end

end
{
  "data": [{
    "id": "step",
    "type": "step",
    "attributes": {
      "value": 1
    }
  }]
}