2016年9月5日月曜日

「Phoenix」フレームワークで、バリデーション(Validations)

Phoenix」フレームワークで、バリデーション(Validations)です。よく使うものとしては、こんなところでしょうか?
  • validate_acceptance(changeset, field, opts \\ [])
  • validate_confirmation(changeset, field, opts \\ [])
  • validate_exclusion(changeset, field, data, opts \\ [])
  • validate_format(changeset, field, format, opts \\ [])
  • validate_inclusion(changeset, field, data, opts \\ [])
  • validate_length(changeset, field, opts)
  • validate_number(changeset, field, opts)
  • validate_required(changeset, fields, opts \\ [])

/web/models/user.ex
defmodule HelloPhoenix.User do
  use HelloPhoenix.Web, :model

  schema "users" do
    field :name, :string
    field :email, :string
    field :bio, :string
    field :number_of_pets, :integer

    timestamps()
  end

  @doc """
  Builds a changeset based on the `struct` and `params`.
  """
  def changeset(struct, params \\ %{}) do
    struct
    |> cast(params, [:name, :email, :bio, :number_of_pets])
    |> validate_required([:name, :email, :bio, :number_of_pets])
    |> validate_length(:bio, min: 10)
    |> validate_length(:bio, max: 200)
    |> validate_inclusion(:number_of_pets, 1..100)
    |> validate_format(:email, ~r/@/)
  end
end

参考サイト
Changesets and Validations(Phoenix)
Ecto.Changeset(Ecto)
[Elixir+Phoenix]Ecto.ChangesetのValidate関数を使う(だるい@あぷれんてぃすさん)

0 件のコメント:

コメントを投稿