【发布时间】:2019-05-24 00:14:46
【问题描述】:
我想使用 ActiveRecord 模型序列化程序来显示主键表和外键表的结果。但是,我希望按外键表中的列分组显示结果。
cats = Cats.paginate(page: params[:page], per_page: 20)
render json: cats, meta: pagination(cats), adapter: :json
在 ActiveRecord 模型序列化器中:
class CatSerializer < ActiveModel::Serializer
attributes :cat, :persons
def persons
object.person
end
def cat
{ id: object.id, cat_name: object.name}
end
现在 cat_name 不是唯一的,Person 可以共享许多 cat_name。请注意 Person => has_many Cats,但 cat_name 可以类似于多个 Persons。如何以这种格式显示数据:
"results": [
{
"cat": {
"id": 11,
"cat_name": "Luzi",
...
},
"persons": [
{
"id": 1,
"name": "andy"
},
{
"id": 2,
"name": "david"
}
另请注意,groyp_by(&:cat_name) 不适用于分页。
【问题讨论】:
标签: ruby-on-rails pagination active-model-serializers