2017-03-27 7 views
2

Postgrex libがpostgreSQLのpointタイプをサポートしていますが、モデルでどのように使用できるかわかりません。私は、移行に列のpointタイプを指定することができますが、私はこのようなモデルで、それを指定した場合:PostgreSQLを使用してEctoでポイントカラムタイプを使用する方法

schema "something" do 
    field :position, :point 
end 

私は** (ArgumentError) invalid or unknown type :point for field :positionを取得します。私はそれを動作させるために特別な何かをする必要がありますか?

+3

を[地理](https://github.com/bryanjos/geo)についてこの。たとえば、そのライブラリの 'Geo.Point'はEcto.Typeの動作を実装しています:https://github.com/bryanjos/geo/blob/master/lib/geo/point.ex。 – Dogbert

+0

@Dogbert私は答えとして投稿するべきだと思います。 –

+0

ええ、@Dogbertは答えとしてそれを投稿してください、私はそれを受け入れるよ! –

答えて

2

Ectoには、PostgreSQLのpointデータ型用のEcto.Type実装モジュールが含まれていません。自分のモジュールをEcto.Typeの振る舞いで定義するか、Geo.Pointimplements the Ecto.Type behaviorを含むgeoのようなライブラリを使用することができます。

geoで、あなたのスキーマは次のようなものになります。私はあなたのようなサードパーティのライブラリを使用する必要があると思う

schema "something" do 
    field :position, Geo.Point 
end 
関連する問題