学んだこと 〜2022/8/27〜
今日学んだ知識
Ruby(Rails)
1.DBMS(データベースマネジメントシステム)とは?
データベースはただの場所であり、そのデータベースにデータを登録したり取得したりするソフトウェアのこと。
無料で使えるものにMySQLやPostgreSQL、SQLiteなどがある。
しかし、実際にRailsで開発する際にデータベースへの登録などはSQLを使ってこなかった。これはRailsのActiveRecordというライブラリを経由することでSQLを触ることなくでデータを操作できるから。
つまりActiveRecordではRubyのコードをSQLに変換するという操作を行なってくれる。
例
# RubyでBookクラスのデータを全て取得するコードを Book.all ↓ ActiveRecordで # SQLでBookクラスのデータを全て取得するコードに変換される select * from books;
モデルを作成するとclass Book < ApplicationRecord
となっており、作成したモデルはActiveRecordをベースにしているApplicationRecordを継承しているため、、モデル作成と同時にActiveRecordの機能が備わっている。
さらにActiveRecordにはデータベースから取得したデータ(レコード)をモデルのインスタンスへ変換するという機能がある。
例:
id = 1 book = Book.find(id) # ActiveRecordのfindメソッドでid=1のデータを取得し、bookに代入することでBookモデルのインスタンスになる。
2.Bookモデルはrails g model Book
で作成したが、これに対応するBookテーブルはどうやって作成されるのか?
まずデータベースのテーブル自体を操作するのはRailsのマイグレーションという機能。マイグレーションでは「マイグレーションファイルの作成」「マイグレーションファイルの実行」という2段階を行う。
①rails g model
というコマンドでモデルと一緒にマイグレーションファイルも作成される。=>マイグレーションファイルの作成
↓
②rails db:migrate
というコマンドでマイグレーションファイルを実行し、そのファイルを元にテーブルが作成される。=>マイグレーションファイルの実行
*マイグレーションファイルは実行したら、そのあとは編集しない!開発途中でテーブルに変更を加える場合はrails g migration add
などで新たにマイグレーションファイルだけを作成し、rails db:migrate
で実行する。