Я хочу использовать сериализатор модели 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
Теперь имя_каталога не является уникальным и персоныможет поделиться многими именами кошек.обратите внимание, что 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) не работает с нумерацией страниц.