- Intro to Fast Rails Development
- Rails Quick Start
- Rails Scaffold
- Scaffold Tour I - Resources
- Scaffold II - Forms
- User Post Relationship
- Validations & Filters
- Correct User
- Adjusting the Pages
- Header Adjustments
- Simple Twist
- 1000 Words
- Live Site on Heroku
Build a quick blog platform with Rails. (Beta tutorial.)
Rails Scaffold
Rails provides a built-in scaffold tool that lets you quickly create a Model, Controller, View and Routes all at once. We didn't cover it in main course since it's easier to initially understand how Rails works without using a scaffold. Also, you'll often need to customize the scaffold's generated code so that it doesn't actually end up saving time.
However, in some cases you'll create a MVC with a very 'standard' structure, so the scaffold can be a convenient shortcut to get started. We're creating a blog application, which means users should be able to Create, Read, Update and Delete their Posts (CRUD). There will be specific pages for viewing each post, viewing a list of posts, and creating and updating posts. This structure aligns with the scaffold's, so let's use the scaffold to get started. Just like when creating a model, we need to tell Rails what column to add to Post. For now, we'll just use one content
column to store the actual content of each post. Enter the following in the terminal:
rails generate scaffold Post content:text
This will generate output showing you everything it creates, some of which you can see below.
invoke active_record create db/migrate/20150708213110_create_posts.rb create app/models/post.rb invoke resource_route route resources :posts invoke scaffold_controller create app/controllers/posts_controller.rb invoke erb create app/views/posts create app/views/posts/index.html.erb create app/views/posts/edit.html.erb create app/views/posts/show.html.erb create app/views/posts/new.html.erb create app/views/posts/_form.html.erb
Just like when you generated a model on its own, scaffold
created a migration file for creating the actual database table. Enter the following to run the migration and create the table:
rake db:migrate
Now go back to your browser and open /posts
. You can now CRUD posts! Play around by creating posts and viewing them.
(Note: If you terminated you're rails server, first enter rails s
to to restart it.)