mirror of
https://github.com/jbranchaud/til
synced 2026-01-03 23:28:02 +00:00
Add Generate A Model as a Rails TIL
This commit is contained in:
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
|||||||
|
|
||||||
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||||
|
|
||||||
_1441 TILs and counting..._
|
_1442 TILs and counting..._
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -897,6 +897,7 @@ _1441 TILs and counting..._
|
|||||||
- [Find Or Create A Record With FactoryBot](rails/find-or-create-a-record-with-factory-bot.md)
|
- [Find Or Create A Record With FactoryBot](rails/find-or-create-a-record-with-factory-bot.md)
|
||||||
- [Find Records With Multiple Associated Records](rails/find-records-with-multiple-associated-records.md)
|
- [Find Records With Multiple Associated Records](rails/find-records-with-multiple-associated-records.md)
|
||||||
- [Force All Users To Sign Out](rails/force-all-users-to-sign-out.md)
|
- [Force All Users To Sign Out](rails/force-all-users-to-sign-out.md)
|
||||||
|
- [Generate A Model](rails/generate-a-model.md)
|
||||||
- [Generate A Rails App From The Main Branch](rails/generate-a-rails-app-from-the-main-branch.md)
|
- [Generate A Rails App From The Main Branch](rails/generate-a-rails-app-from-the-main-branch.md)
|
||||||
- [Generating And Executing SQL](rails/generating-and-executing-sql.md)
|
- [Generating And Executing SQL](rails/generating-and-executing-sql.md)
|
||||||
- [Get A Quick Approximate Count Of A Large Table](rails/get-a-quick-approximate-count-of-a-large-table.md)
|
- [Get A Quick Approximate Count Of A Large Table](rails/get-a-quick-approximate-count-of-a-large-table.md)
|
||||||
|
|||||||
26
rails/generate-a-model.md
Normal file
26
rails/generate-a-model.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# Generate A Model
|
||||||
|
|
||||||
|
The `rails` CLI comes with a variety of generators. Perhaps the mostly common
|
||||||
|
one to use is the _model_ generator.
|
||||||
|
|
||||||
|
The model generator will create a migration and a model file for the entity
|
||||||
|
that you name. In the following example `Book` will result in a
|
||||||
|
`app/models/book.rb` file as well as a migration file for a `books` table.
|
||||||
|
These generators know the singular and plural conventions.
|
||||||
|
|
||||||
|
At the end of the command is a series of field definitions containing the field
|
||||||
|
_name_ and field _type_. These are used in the migration file for defining
|
||||||
|
columns on the new table.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
❯ bin/rails generate model Book title:string publication_date:date author:string
|
||||||
|
invoke active_record
|
||||||
|
create db/migrate/20240920223447_create_books.rb
|
||||||
|
create app/models/book.rb
|
||||||
|
invoke rspec
|
||||||
|
create spec/models/book_spec.rb
|
||||||
|
```
|
||||||
|
|
||||||
|
You may also notice that an `rspec` action was invoked as part of this
|
||||||
|
generator. That is because I have the `rspec-rails` gem in my project. That gem
|
||||||
|
hooks into the model generator so that a model spec also gets generated. Handy!
|
||||||
Reference in New Issue
Block a user