在我的Elixir / Phoenix应用程序上,我有一个Address
模型,上面有location
字段。
该字段是Geo.Geometry库中的Geo自定义类型,具有以下结构:
%Geo.Point{coordinates: {30, -90}, srid: 4326}
我正在寻找一种方法来生成包含此Address
的{{1}}模型的表单,但我不确定这样做的正确方法是什么。
我正在考虑向我的location
模型添加虚拟字段,例如Address
和lat
,在表单中使用它们,然后"翻译"这些字段变为lng
函数中的%Geo.Point
。
这是正确的方法,还是有更简单的解决方案?如果是这样,如何在变更集中执行此操作?
非常感谢。
答案 0 :(得分:3)
我建议的方法最终有效:将lat
和lng
个虚拟字段添加到Address
模型,然后在location
字段中设置Address
字段的值{1}}更改了put_changes
。
答案 1 :(得分:3)
应该避免使用UI要求污染架构。我强烈建议您阅读JoséValim解释无模式查询的帖子。
http://blog.plataformatec.com.br/2016/05/ectos-insert_all-and-schemaless-queries/
希望它有所帮助。