Building Forms

Now that we have a database-backed repository, let’s add the ability to create new users in our system. We’re going to use Phoenix’s form builders for that purpose. First, open up your controller at web/controllers/user_controller.ex and set up a new user record for our new template, like this:

 alias Rumbl.User
 
 def​ new(conn, _params) ​do
  changeset = User.changeset(%User{})
  render conn, ​"​​new.html"​, ​changeset:​ changeset
 end

Notice the User.changeset function. This function receives a struct and the controller parameter, and returns an Ecto.Changeset. Changesets let Ecto manage record changes, cast parameters, and perform validations. We use a changeset ...

Get Programming Phoenix now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.