Practice
1. In Rails, what is the correct way to name a database table for storing multiple user records?
easy
Solution
Step 1: Understand Rails table naming convention
Rails expects table names to be plural and lowercase to represent collections of records.Step 2: Apply naming to the user entity
The plural form of "user" is "users", all lowercase, matching Rails conventions.Final Answer:
users -> Option AQuick Check:
Plural lowercase table name = users [OK]
Hint: Table names are plural and lowercase with underscores [OK]
Common Mistakes:
- Using singular names like 'User'
- Capitalizing table names
- Adding extra words like 'Table'
2. Which of the following is the correct Rails table name for a model named
OrderItem?easy
Solution
Step 1: Identify word separation in table names
Rails uses underscores to separate words in table names, all lowercase.Step 2: Convert 'OrderItem' to table name
Split words with underscore and pluralize: 'order_items'.Final Answer:
order_items -> Option CQuick Check:
Use underscores and plural lowercase = order_items [OK]
Hint: Use underscores between words, all lowercase [OK]
Common Mistakes:
- Writing names without underscores
- Using camel case or hyphens
- Capitalizing letters in table names
3. Given a Rails model named
BlogPost, which table name will Rails expect to find in the database?medium
Solution
Step 1: Recall Rails naming rules for tables
Tables are plural, lowercase, and use underscores to separate words.Step 2: Apply rules to 'BlogPost'
Split words with underscore and pluralize: 'blog_posts'.Final Answer:
blog_posts -> Option AQuick Check:
Plural, lowercase, underscores = blog_posts [OK]
Hint: Pluralize and underscore multiword model names [OK]
Common Mistakes:
- Using camel case or hyphens
- Not pluralizing the table name
- Capitalizing table names
4. You have a table named
user_profiles but your Rails model is named UserProfile. You get an error that the table does not exist. What is the likely cause?medium
Solution
Step 1: Check Rails table naming conventions
Rails expects plural, lowercase, underscore-separated table names matching the model name.Step 2: Verify the table name 'user_profiles'
This matches the convention for model 'UserProfile'. So the table name is correct.Final Answer:
The table name is correct; the error is elsewhere -> Option BQuick Check:
Table name matches Rails convention = user_profiles [OK]
Hint: Rails table names are plural lowercase with underscores [OK]
Common Mistakes:
- Changing table name to singular
- Using camel case for table names
- Assuming error is table name when it is not
5. You want to create a join table for a many-to-many relationship between
Author and Book models in Rails. What is the correct table name?hard
Solution
Step 1: Understand Rails join table naming
Join tables are named by combining the plural names of both models in alphabetical order, separated by an underscore.Step 2: Apply to 'Author' and 'Book'
Plural forms are 'authors' and 'books'. Alphabetically, 'authors' comes before 'books', so the table name is 'authors_books'.Final Answer:
authors_books -> Option DQuick Check:
Join table = plural model names in alphabetical order [OK]
Hint: Join tables use plural model names alphabetically joined by underscore [OK]
Common Mistakes:
- Using singular names in join table
- Not ordering names alphabetically
- Capitalizing join table names
