見出し画像

0806 プログラミングRuby on Rails2周目

!注意!
本記事はプログラミングスクールに通うプログラミング初心者の私が、学んだことを日記として記録するための記事です。
有益な情報は含まれておりませんので、ご注意ください。

モデルについて

RDB(リレーショナルデータベース)とは
Railsアプリでデータを保存する場合、主にRDB(リレーショナルデータベース)と呼ばれるデータベースを使用します。
一般にデータベースといわれるものの大半はRDBなので、比較的馴染みのあるものでしょう。

RDBの特徴
RDBでは、縦横の行・列からなるテーブルにデータを保存し、テーブル同士を関連づけて使用します。

テーブルとは
テーブルとはデータの保存をする場所で、データベースの中に含まれます。
テーブルは縦横の表のように構成され、データを1件足すごとにレコード(行)が増えていきます。また、1つのレコードのそれぞれの項目のことをカラムと呼びます。

作成時は、ターミナルで「rails g model (モデル名)」というコマンドを実行します。

ファイルの種類 ファイル名 役割
モデルのクラスファイル app/models/tweet.rb 主に、tweetsテーブルから取得したデータに何らかの命令(メソッドと言います)を実行させたいときに記述するファイル。
マイグレーションファイル db/migrate/20190513083226_create_tweets.rb(*1) テーブルの設計図。ここに必要な事項を記述して、マイグレートを実行するとテーブルが作成されます。
(*1) 作成日時がファイル名になります


マイグレーションファイルの記述の仕方

マイグレーションファイルとは、テーブルを作成するときの設計図のこと。その時に必ず書くのが「カラム名」と「データ型」です。


カラムのデータ型とは
データ型とは、そのカラムに格納するデータの種類を表すものです。あらかじめ種類を定めておくことによって、おかしなデータが予期せずカラムに保存されてしまうことを防ぐことができます。

データ型 説明 用例
integer 整数 ユーザーのidなど
string 文字(255文字まで) ユーザー名、パスワードなど
text 文字(256文字以上も可能) 投稿文など
boolean 真か偽か 真偽フラグ
datetime 日付と時刻 作成日時、更新日時など

マイグレートの状況を確認する方法
マイグレート済みのファイルを誤って編集してしまわないためには、マイグレートが終わっているのかどうか確認することが必要です。下記のコマンドで確認することができます。

$ rails db:migrate:status


コンソールからレコードの情報を呼び出してみよう

rails c コマンド
rails c とは「rails console」(コンソール)の略です。
コンソールを実行すると作成したRailsアプリケーションのメソッドやクラスなどを実際に呼び出すことができます。ターミナルから「rails c」コマンドを実行することでコンソールを起動できます。


allメソッド
allメソッドはApplicationRecordを継承したモデルと結びつくテーブルのレコードを全て取得します。

newメソッド・saveメソッド
newメソッドはクラスのインスタンスを生成するメソッドです。ApplicationRecordを継承しているモデルクラスの場合、newメソッドを実行すると関連するテーブルのカラム名がキーになったハッシュのようなものが生成されます。これをモデルクラスのインスタンスと呼びます。
インスタンスのそれぞれのキーに値を代入してsaveメソッドを実行するとテーブルに保存されます。

createメソッド
createメソッドはレコードの作成を行うことのできるメソッドです。
先ほど見たnewメソッドとsaveメソッドを両方行ってくれるメソッドです。単にレコードを作成する場合はこのメソッドが便利です。

findメソッド
findメソッドは引数に指定したidにあたる作品情報を1件だけ取得します。 もし、そのidにあたる作品が存在しない場合、エラーが発生します。

レコードの更新
テーブルに保存されているレコードを更新するにはそのレコードをインスタンスとして取得し、カラムを指定して値を直接代入します。上書きするだけではレコードの値は更新されないので、上書きを保存するにはインスタンスのsaveメソッドを使います。

この記事が参加している募集

習慣にしていること

このたびは記事を読んでいただき、ありがとうございます。いただいたサポートはカフェでの勉強代や書籍購入費として、大切に使わせていただきます🌷