Hello,
Consider this changeset:
def changeset(model, params = %{}) do
model
|> cast(params, ~(name age gender))
|> put_change(:name, "Mr. Rogers")
end
And this controller:
def new(conn, params) do
changeset = %Person{} |> Person.changeset(params)
render conn, "new.html.haml", changeset: changeset
end
The name Mr. Rogers
is not shown on the form rendered by form_for
. Why??
If I change my controller action to be:
def new(conn, params) do
changeset = %Person{ name: "Mr. Rogers" } |> Person.changeset(params)
render conn, "new.html.haml", changeset: changeset
end
or
def new(conn, params) do
params = Map.put(params, :name, "Mr. Rogers")
changeset = %Person{} |> Person.changeset(params)
render conn, "new.html.haml", changeset: changeset
end
Then it works fine.
What I’m basically trying to do is initialize some data on my model/changeset. It’s dynamic data, that’s why I have to use put_change/3
.
I’m using ecto-2.0-rc5.
Thanks for the help.