【发布时间】:2015-05-31 05:25:50
【问题描述】:
我有几个模型。我们称它们为 Widget 和 Gadget。
我的 Widget 和 Gadget 的#index 看起来像这样
def index
widgets = Widget.all
if widgets
respond_with widgets, each_serializer: Api::V1::WidgetSerializer
else
render json: { message: [t(:not_found_widget)] }, status: :not_found
end
end
def index
gadgets = Gadget.all
if gadgets
respond_with gadgets, each_serializer: Api::V1::GadgetSerializer
else
render json: { message: [t(:not_found_gadget)] }, status: :not_found
end
end
还有我的序列化器...
class Api::V1::WidgetSerializer < ActiveModel::Serializer
attributes :id, :desc
end
class Api::V1::GadgetSerializer < ActiveModel::Serializer
attributes :id, :desc
end
但是,我需要一个能同时返回 1 中的资源的资源。我需要同时返回小部件和小工具。所以 json 看起来像......
{
"widgets": [
{
"id": 1,
"desc": "One"
},
{
"id": 2,
"desc": "Two"
}
],
"gadgets": [
{
"id": 1,
"desc": "One"
},
{
"id": 2,
"desc": "Two"
}
]
}
我怎样才能做到这一点。类似的东西
widgets = Widget.all
gadgets = Gadget.all
respond_with widgets, each_serializer: Api::V1::WidgetSerializer, gadgets, each_serializer: Api::V1::GadgetSerializer
但是,这显然行不通。
【问题讨论】:
标签: ruby-on-rails json active-model-serializers