Hey again! π In the last blog, we created our first Rails app and explored the folder structure and routing system. Now, it’s time to see what actually happens when someone visits a URL in your app.
In this post, we’ll explore:
-
π¦ What controllers are and how to create them
-
π§ What actions are and how to work with parameters
-
πΌ️ How Rails renders views and uses layouts to keep things organized
Let’s jump right in!
Creating and Using Controllers π
A controller in Rails is like a traffic controller—it decides what to do when a user visits a certain page (URL).
Each controller is a Ruby class that inherits from ApplicationController and has methods called actions.
Let’s create a controller
Open your terminal and run:
This does a few things:
-
Creates a file:
app/controllers/pages_controller.rb -
Adds three methods (actions):
home,about, andcontact -
Creates matching view files:
-
app/views/pages/home.html.erb -
app/views/pages/about.html.erb -
app/views/pages/contact.html.erb
-
-
Updates your routes
Now open your browser and visit:
-
http://localhost:3000/pages/home -
http://localhost:3000/pages/about -
http://localhost:3000/pages/contact
π You just created your first custom pages using a controller!
Action Methods and Parameters π
Each method inside a controller is called an action. It runs when a user visits a matching route.
Here’s a simple example:
Let’s also add a view for it: app/views/pages/greet.html.erb
Now update your routes.rb:
Visit this URL in your browser:
Boom! You’ll see:
Hello, John!
π This is how parameters work in Rails. You can pass data through the URL using params[:key].
Rendering Views and Using Layouts πΌ️π§©
Views
A view is the HTML file Rails renders after a controller action runs. Views are stored in:
So for PagesController#greet, the view file should be:
Inside .erb files, you can mix HTML with Ruby code using <%= %>.
Layouts
Rails uses layouts to keep your HTML structure consistent (like headers, footers, navbars).
Default layout:
Inside this file, you’ll see:
This is where your actual view content gets inserted. So if your layout has a navbar and footer, they’ll always show—just like magic π§♂️
You can also use different layouts for different controllers if needed.
Wrapping Up π
Nice job! Here’s what you’ve learned today:
-
✅ How to create and use controllers
-
✅ How action methods work and how to use
params -
✅ How Rails renders views and keeps things consistent using layouts
In the next blog, we’re going to explore a super important part of any Rails app—working with data! You’ll learn:
-
π¦ What Active Record is and how Rails talks to the database
-
π ️ How to create models and migrations
-
✏️ How to perform CRUD operations (Create, Read, Update, Delete)
We’ll finally make our app dynamic and start saving real data to the database. It’s going to be a big step forward—see you there! π
As always, if you have any questions or want a concept explained more deeply—drop a comment or message. I’ve got you covered!
No comments:
Post a Comment