MVC: Model

Rachelle LeQuesne
February 13, 2017

MVC: Model

Note: This post is intended as a supplement to WTF Just Happened? A Quick Tour of Your First Rails App.

MVC: Model

Most web applications will have a database attached to them. Within an MVC architecture, we interact with data in our database through our Models using Ruby code. That’s right, there is no need to learn SQL!

As a general rule, a model in a Rails application corresponds to a table in a relational database. Our model provides a way for us to treat the database table as if it were just another object in our application.

Our model class is where we can specify any business logic that relates to the object in question. We can also define an association between models. For our Installfest application, we have the following two models:

```ruby class Post < ApplicationRecord has_many :comments

validates_presence_of :body, :title end ```

ruby class Comment < ApplicationRecord belongs_to :post end

We have defined an association between the Post class and the Comments class. Specifically that a post has many comments, and a comment belongs to a post.

We have also included a business rule in the form of a validation that states that the title and the body of a post must not be empty.