【问题标题】:Is there a way to update virtual field in the association of a schema?有没有办法更新模式关联中的虚拟字段?
【发布时间】:2022-01-18 22:05:53
【问题描述】:

有人可以帮我解决这个问题吗?

我有一个使用 postgis 的项目,我正在尝试获取相关数据。

我有一个保存代理信息的表格和一个保存每个代理区域的表格。 我在区域架构中有一个虚拟字段,我试图从数据库计算值中填充它

查看 PhoenixGeo.Agents.get_agent_with_ares!(agent.id)

我这样做是为了避免进行两个单独的查询

我遵循了在线可用的做法,但它似乎没有更新该字段。

这是我的仓库:https://github.com/alt-ctrl-dev/phoenix_geo(已编辑)

我希望我的最终结果是:

%Agent{
    id:"agent-id"
    ...
    areas: [
      %Area{
         id: "area-id",
         area: <DB_CALCULATED_VALUE>
         ...
      },
    ...
  ]
}

任何帮助或指导将不胜感激!

拜托,谢谢你?????????

【问题讨论】:

    标签: elixir phoenix-framework ecto


    【解决方案1】:

    我认为

    select_merge: %{
      areas: %{area: fragment("st_area(?) * 1000 * 1000", area.geojson_feature)}
    }
    

    应该去预加载:

    preload: [areas: area, {area: fragment("st_area(?) * 1000 * 1000", area.geojson_feature)}],
    

    我是凭脑子打字的,您可以查看文档中的示例并找出正确的语法: https://hexdocs.pm/ecto/Ecto.Query.html#preload/3

    【讨论】:

    • 谢谢!它引导我找到解决方案。如果有人想查看它,我已经更新了 repo
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多