📖 Scenario: You want to create a new web application using Ruby on Rails. This app will help you manage a simple blog with posts and comments.
🎯 Goal: Learn how to generate a new Rails project with the correct setup and basic configuration.
📋 What You'll Learn
Create a new Rails project named blog_app
Set the database to postgresql
Add a configuration variable for the Rails environment
Generate a scaffold for Post with title:string and body:text
Run the database migration to create the posts table
💡 Why This Matters
🌍 Real World
Creating a new Rails project is the first step in building web applications like blogs, e-commerce sites, or social platforms.
💼 Career
Understanding Rails project setup is essential for backend web developers working with Ruby on Rails frameworks.
Progress0 / 4 steps
1
Create a new Rails project
Run the command to create a new Rails project called blog_app using the postgresql database.
Ruby on Rails
Hint
Use rails new blog_app -d postgresql to create the project with PostgreSQL as the database.
2
Set Rails environment variable
Inside the blog_app directory, create a file called .env and add a line to set the Rails environment variable RAILS_ENV to development.
Ruby on Rails
Hint
Create a file named .env and write RAILS_ENV=development inside it.
3
Generate Post scaffold
Run the Rails generator command to create a scaffold for Post with a title of type string and a body of type text.
Ruby on Rails
Hint
Use rails generate scaffold Post title:string body:text to create the Post scaffold.
4
Run database migration
Run the command to migrate the database and create the posts table based on the scaffold.
Ruby on Rails
Hint
Run rails db:migrate to apply the database changes.
Practice
(1/5)
1. What does the rails new command do when creating a new project?
easy
A. It only installs Rails without creating any files.
B. It creates a new Rails app with all necessary files and folders.
C. It deletes old Rails projects from your computer.
D. It updates an existing Rails app to the latest version.
Solution
Step 1: Understand the purpose of rails new
This command is designed to set up a new Rails application by creating all the needed files and folders automatically.
Step 2: Compare options
Options A, C, and D describe actions unrelated to creating a new project. Only It creates a new Rails app with all necessary files and folders. correctly describes the creation of a new app with files.
Final Answer:
It creates a new Rails app with all necessary files and folders. -> Option B
Quick Check:
rails new creates app files = B [OK]
Hint: Remember: rails new sets up a full app folder [OK]
Common Mistakes:
Thinking it only installs Rails without files
Confusing it with update or delete commands
Assuming it modifies existing projects
2. Which of the following is the correct syntax to create a new Rails project named blog with PostgreSQL as the database?
easy
A. rails new blog -d mysql
B. rails create blog --db=postgresql
C. rails generate blog --database=postgresql
D. rails new blog --database=postgresql
Solution
Step 1: Identify the correct command for new project creation
The command to create a new Rails app is rails new, not rails create or rails generate.
Step 2: Check the database option syntax
The correct option to specify the database is --database=postgresql. rails new blog -d mysql uses -d mysql which is for MySQL, not PostgreSQL.
Final Answer:
rails new blog --database=postgresql -> Option D
Quick Check:
Use rails new with --database= option = C [OK]
Hint: Use rails new appname --database=postgresql for PostgreSQL [OK]
Common Mistakes:
Using rails create instead of rails new
Wrong database option like -d mysql for PostgreSQL
Confusing rails generate with project creation
3. After running rails new shop, which folder will NOT be created inside the new shop directory?
medium
A. app
B. bin
C. node_modules
D. config
Solution
Step 1: Recall default folders created by rails new
Rails creates folders like app, bin, and config by default for app code, executables, and configuration.
Step 2: Understand node_modules folder creation
The node_modules folder is created only after installing JavaScript packages with tools like Yarn or npm, not by default with rails new.
Final Answer:
node_modules -> Option C
Quick Check:
node_modules appears after JS install, not on new app [OK]
Not knowing which folders Rails generates automatically
4. You ran rails new myapp --database=sqlite3 but got an error saying the database adapter is missing. What is the most likely cause?
medium
A. You forgot to install the SQLite3 gem before creating the project.
B. The command rails new does not support SQLite3 database.
C. You must use --db=sqlite3 instead of --database=sqlite3.
D. You need to create the database manually before running rails new.
Solution
Step 1: Understand the error cause
The error about missing database adapter usually means the required gem (SQLite3) is not installed on the system.
Step 2: Check command and options validity
The rails new command supports SQLite3 by default with --database=sqlite3. The option --db= is invalid, and manual DB creation is not needed before project creation.
Final Answer:
You forgot to install the SQLite3 gem before creating the project. -> Option A
Quick Check:
Missing DB adapter error = missing gem install [OK]
Hint: Install DB gems before rails new to avoid adapter errors [OK]
Common Mistakes:
Using wrong option --db= instead of --database=
Thinking rails new can't use SQLite3
Trying to create DB manually before project
5. You want to create a new Rails project named portfolio with PostgreSQL and skip the default test framework. Which command should you use?
hard
A. rails new portfolio --database=postgresql --skip-test
B. rails new portfolio -d postgresql --skip-test-framework
C. rails new portfolio --database=postgresql --skip-test-framework
D. rails new portfolio -d postgresql --skip-test
Solution
Step 1: Identify correct database option
The shorthand for --database is -d, but both -d postgresql and --database=postgresql are valid.
Step 2: Identify correct option to skip test framework
The correct option to skip the default test framework is --skip-test. The option --skip-test-framework is invalid.
Step 3: Combine correct options
Both rails new portfolio -d postgresql --skip-test and rails new portfolio --database=postgresql --skip-test are valid, but the official documentation prefers the full option --database= with --skip-test.
Final Answer:
rails new portfolio --database=postgresql --skip-test -> Option A
Quick Check:
Use --database= for DB and --skip-test to skip tests [OK]
Hint: Use --database= for DB and --skip-test to skip tests [OK]
Common Mistakes:
Using invalid option --skip-test-framework
Using shorthand -d with wrong skip option
Mixing shorthand and wrong skip flags
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.