Generating the User Model

Generate the User model of the application.

We'll cover the following

In the last chapter, we managed to set up the bare bones for our application’s endpoints configuration.

In the next chapter, we will handle user authentication through authentication tokens and set permissions to limit access for, let’s say, signed-in users.

In the coming chapters, we will relate products to users and give them the ability to place orders.

There are many authentication solutions for Rails, including AuthLogic, Clearance, and Devise. These solutions are turnkey libraries, which allow us to manage things like authentication, password forgetfulness, validation, and more. Nevertheless, we will use the bcrypt gem to hash the user’s password.

Note: This chapter is on the longer side and we will cover many topics. Feel free to have a coffee, stretch, or prepare however you like. By the end of this chapter, we will have built all the user logic, validation, and error management.

The User model

A model is a Ruby class that is used to represent data. The model contains the data and the logic related to it, including validation, reading, and recording. We will start by generating our User model. This model will be straightforward and will contain only two fields:

  • The email field should be unique.
  • The password_digest field contains the hashed version of the password (we will discuss this later in this chapter).

Get hands-on with 1200+ tech skills courses.