2016年9月9日金曜日

ElixirでEctoにアクセス(insert)

ElixirEctoにアクセス(insert)です。

例1
struct型のデータで、データ型が合っていれば何でも登録できてしまう。バリエーションが働かない。
$ iex -S mix

# 登録データを定義
iex()> changeset = %HelloPhoenix.User{name: "Taro", email: "taro@example.com", bio: "Taro is a cool guy.", number_of_pets: 2, inserted_at: %Ecto.DateTime{year: 2016, month: 9, day: 9, hour: 22, min: 10, sec: 31}, updated_at: %Ecto.DateTime{year: 2016, month: 9, day: 9, hour: 22, min: 10, sec: 31}}

# データをインサート
iex()> HelloPhoenix.Repo.insert(changeset)

例2
チェンジセット(changeset)にデータを変換しているので、バリエーションが働く。
$ iex -S mix

# 登録データのモデルを用意
iex()> user = %HelloPhoenix.User{}

# 登録データデータを定義
iex()> param = %{name: "Jiro", email: "jiro@example.com", bio: "Jiro is a cool guy.", number_of_pets: 9999, inserted_at: %Ecto.DateTime{year: 2016, month: 9, day: 9, hour: 22, min: 40, sec: 31}, updated_at: %Ecto.DateTime{year: 2016, month: 9, day: 9, hour: 22, min: 40, sec: 31}}

# チェンジセット(changeset)データに変更
iex()> new_user = HelloPhoenix.User.changeset(user, param)

# チェンジセット(changeset)データをインサート
iex()> HelloPhoenix.Repo.insert(new_user)

参考サイト
Ecto.Repo(Ecto)
chrismccord/phoenix-guides(GitHub)
「Phoenix」フレームワークの「チェンジセット(changeset)」とは?
Elixirで構造体(Structs)

0 件のコメント:

コメントを投稿