Edit: I guess what I'm asking is how to do:
board.members[1].username = owner
I'm trying to make owner
of the object (input by user) be among its members
, which is a map linking a member name to its role, both being strings. This should happen as the new object is created.
Edit: my sorry attempt at making it simple
defmodule Vision.Boards.Board do
use Ecto.Schema
import Ecto.Changeset
schema "boards" do
field :members, :map
field :owner, :string
field :team_name, :string
field :title, :string
timestamps()
end
@doc false
def changeset(board, attrs) do
board
|> cast(attrs, [:title, :owner, :team_name])
|> validate_required([:title, :owner, :team_name])
board =
Repo.insert! %Board{members: %{:owner => "Manage"}}
end
end
Also, this field :members, :map, default: %{:owner => "Manage"}
board = Repo.insert!(%Board{members: %{:owner => "Manage"}}
indef changeset(board, attrs) do
just below|> validate_required(...
- Stevo Ilišković