【问题标题】:ExAdmin - Add input for nested dataExAdmin - 为嵌套数据添加输入
【发布时间】:2018-06-04 13:26:26
【问题描述】:

我正在尝试将更多数据添加到 CRUD 到我的管理界面。我的架构如下所示:

schema "tree" do
  field :name, :string
  field :metadata, :map
  field :created_at, Ecto.DateTime
  field :updated_at, Ecto.DateTime
end

我的表单目前看起来像这样:

form framework_tree do
  inputs do
    input tree, :name
  end
  inputs "Metadata" do
    input tree, :metadata, schema: [icon: :string, index: :integer, title: :string]
  end
end

元数据如下所示:

{   
    "metadata": {
        "index": 1,
        "info": {
            "text": "Some random text"
        },
        "icon": "icon_1",
        "data_points": [
            {
                "default": {
                    "name": "Default"
                }
            },
            {
                "other": {
                    "name": "Other"
                }
            }
        ]
    }
}

到目前为止,我能够编辑顶级元数据字符串和整数。但我想编辑info.text 以及data_points 的数组。我可以将这些添加到表单中的schema 数组中吗?还是有其他方法可以轻松编辑这些数据?

【问题讨论】:

    标签: elixir phoenix-framework ecto exadmin


    【解决方案1】:

    这是Ecto.Schema.embedded_schema/1 的完美用例:

    defmodule Tree do
      use Ecto.Schema
    
      schema "tree" do
        field :name, :string
        embeds_one :metadata, Metadata
        field :created_at, Ecto.DateTime
        field :updated_at, Ecto.DateTime
      end
    end
    
    defmodule Metadata do
      use Ecto.Schema
    
      embedded_schema do
        field :index
        field :info
        field :icon
        embeds_many :datapoints, Datapoint
      end
    end
    
    defmodule Datapoint do
     ...
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      相关资源
      最近更新 更多