драгоценный камень предка получает дерево с идентификаторами предка - PullRequest
0 голосов
/ 16 мая 2018

Я использую драгоценный камень предка, чтобы создать вложенную таблицу меню.

когда я render json: Menu.all

Я получаю:

[
    {
        "id": 1,
        "label": "Menu"
        "created_at": "2018-05-14T14:28:03.883Z",
        "updated_at": "2018-05-14T14:28:03.883Z",
        "ancestry": null
    },
    {
        "id": 2,
        "label": "Menu 1-1",
        "created_at": "2018-05-14T14:28:13.982Z",
        "updated_at": "2018-05-14T14:28:13.982Z",
        "ancestry": "1"
    },
    {
        "id": 3,
        "label": "Menu 1-1-1",
        "created_at": "2018-05-14T14:28:13.982Z",
        "updated_at": "2018-05-14T14:28:13.982Z",
        "ancestry": "1/2"
    },
 etc

Что я хотел бы сделать, так это вернуть идентификатор родителя (я ценю, что это последнийфигура в поле предков, но я хочу, чтобы она была отдельной.

Итак, я получаю:

[
    {
        "id": 1,
        "label": "Menu"
        "created_at": "2018-05-14T14:28:03.883Z",
        "updated_at": "2018-05-14T14:28:03.883Z",
        "ancestry": null,
        "parent_id":null
    },
    {
        "id": 2,
        "label": "Menu 1-1",
        "created_at": "2018-05-14T14:28:13.982Z",
        "updated_at": "2018-05-14T14:28:13.982Z",
        "ancestry": "1",
        "parent_id":"1"
    },
    {
        "id": 3,
        "label": "Menu 1-1-1",
        "created_at": "2018-05-14T14:28:13.982Z",
        "updated_at": "2018-05-14T14:28:13.982Z",
        "ancestry": "1/2",
        "parent_id":"2"
    }, 

Кто-нибудь знает, как этого добиться?

1 Ответ

0 голосов
/ 16 мая 2018

Попробуйте переопределить to_json (https://apidock.com/rails/ActiveRecord/Serialization/to_json), чтобы включить parent_id в класс вашей модели:

class Menu < ActiveRecord::Base
  def to_json
    super(methods: [:parent_id])
  end
end
...