如何在Phoenix中生成Geo自定义类型的表单

时间:2016-10-10 19:03:25

标签: forms elixir phoenix-framework geo

在我的Elixir / Phoenix应用程序上,我有一个Address模型,上面有location字段。

该字段是Geo.Geometry库中的Geo自定义类型,具有以下结构:

%Geo.Point{coordinates: {30, -90}, srid: 4326}

我正在寻找一种方法来生成包含此Address的{​​{1}}模型的表单,但我不确定这样做的正确方法是什么。

我正在考虑向我的location模型添加虚拟字段,例如Addresslat,在表单中使用它们,然后"翻译"这些字段变为lng函数中的%Geo.Point

这是正确的方法,还是有更简单的解决方案?如果是这样,如何在变更集中执行此操作?

非常感谢。

2 个答案:

答案 0 :(得分:3)

我建议的方法最终有效:将latlng个虚拟字段添加到Address模型,然后在location字段中设置Address字段的值{1}}更改了put_changes

答案 1 :(得分:3)

应该避免使用UI要求污染架构。我强烈建议您阅读JoséValim解释无模式查询的帖子。

http://blog.plataformatec.com.br/2016/05/ectos-insert_all-and-schemaless-queries/

希望它有所帮助。