Custom Ecto.Type
TIL
640
Ecto
2
elixir
35
White

Vie viết ngày 07/07/2017

Custom Ecto.Type

Version hiện tại của Ecto.Type không support một số datatype sử dụng khi validate. Ví dụ như MapSet. Thành ra đành phải tự viết để dùng.

defmodule CustomMapSet do
  @behaviour Ecto.Type
  def type, do: {:mapset, :integer}

  def cast(mapset) when is_map(mapset) do
    if mapset |> MapSet.to_list |> Enum.all?(&is_number/1) do
      {:ok, mapset}
    else
      :error
    end
  end

  def cast(mapset), do: :error
  defdelegate dump(x), to: {:mapset, :integer}
  defdelegate load(x), to: {:mapset, :integer}
end

Và khai báo trong schema:

schema "tables" dodo
    field :id, :integer
    field :custom_col, CustomMapset
end

Nguồn tham khảo: https://github.com/joekain/date_ranges/tree/master/lib/date_ranges

VietNguyen 06-07-2017

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Vie

8 bài viết.
4 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
2 1
Zoom in, zoom out trên webview Tag meta có name='viewport' sẽ định nghĩa trạng thái zoom in, zoom out. Các thuộc tính được set trong content='......
Vie viết 8 tháng trước
2 1
White
1 0
Ngôn ngữ truy vấn cho API GraphQL và Ecto GraphQL: http://graphql.org/ Thư viện GraghQL dùng trên Ecto: https://github.com/absinthegraphql/absint...
Vie viết hơn 1 năm trước
1 0
Bài viết liên quan
White
9 6
Chưa xem phần 2? Xem (Link) Trong bài viết này tôi giới thiệu cho các bạn về khái niệm function arity, một cách gọi mĩ miều của số lượng argument ...
Lơi Rệ viết hơn 3 năm trước
9 6
White
6 0
Bạn đang viết application với Elixir? Bạn sắp release sản phẩm hay đơn giản thỉnh thoảng bạn không biết tại sao service A lại lăn đùng ra chết hay ...
Trần Việt Thắng viết 2 tháng trước
6 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
8 bài viết.
4 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!