如何将ActiveModel :: Serializer应用于自定义对象?

时间:2015-05-05 09:53:26

标签: ruby-on-rails json ruby-on-rails-4 activemodel active-model-serializers

如果指定ActiveModel对象的简单数组,则序列化程序可以工作:

<div class="inputcontainer">
  <input type="text" class="input" placeholder="Your message"/>
  <div class="arrow"></div>
</div>

但我需要使用其他字段来回复JSON,例如format.json { render json: @childs, each_serializer: ItemSerializer } 等。

parent_id

知道如何实现它吗?

item_serializer.rb

{parent_id: 15, childs: @childs}

items_controller.rb

class ItemSerializer < ActiveModel::Serializer
  attributes :id, :name, :parent_id
end

1 个答案:

答案 0 :(得分:1)

耶!我搞清楚了!希望它可以帮助别人!

respond_to do |format|
            format.json { render json:
                { parent_id: parent_id, childs: ActiveModel::ArraySerializer.new(@childs, each_serializer: ItemSerializer) }
            }
        end