【Ralisにおけるモデル・データベース】作成・読み込み・編集・削除

どせぜん

どうも、どせぜんです。


いや、暇ですね。そんな日でも1日という時間の価値は変わりません。浪費するか、投資するかはあなた次第。

ということで、SkillHacks 12日目やってまいりました。

あと割と自分の思いを最後に書いておいたので、お時間ない方は目次の最後だけでも見てやってください。頼む。


それでは、いきましょう。

モデルとデータベース


モデル、とはRubyにおいてデータベースとのやりとりを行う部分です。



データベースにおいては、

表のことを「テーブル」

1行のデータのことを「レコード」

1列のデータのことを「カラム」

と呼びます。

データベースを扱うためには、SQLという言語を使いこなす必要があるのですが、RailsはRubyを使うことでSQLという言語について詳しくなくても、直感的にデータベースを扱うことができます。Railsお前はどこまで…。

カラム名と各カラムのデータ形式について書いてあるファイルをマイグレーションファイルと呼びます。

モデルの作成


まず、アプリの雛形を作成し、

rails _5_ new model-sample



モデルの作成には、こちらのコマンドを使います。

rails g modele User name:string age:integer


テーブル名をusersにしたい場合、User というモデル名(大文字始まりで単数)にする必要があります。さらにその後ろにはカラムの情報を付加しています。

ここでは、nameは文字(string)、ageは整数(integer)というふうにしています。

モデルを作成すると、

app/models/(モデル名).rb が作成され、中にはモデルの情報が書かれています。

また、
db/migrate/(作成した日付)_create_(モデル名).rb というマイグレーションファイルも作成されます。中には、カラムの情報が書かれています。


ここで、マイグレーションファイルの情報をもとに、データベースを作成します。使って、データベースを作成します。

rails db:migrate


ここでできたデータベースの中身は、dbフォルダ内の development.sqlite3 に入れられます。


ここで、データベースの中身を確認するには、

rails dbconsole


というコマンドを用います。

その後、

.tables

を入力すると、テーブルが作成されているかどうかを確認することができます。


そして、データベースを確認するモードから抜ける時は、

.exit


を入力すれば良いです。

データの作成と読み込み


コマンドラインでRubyのコマンドを実行するには、

rails c

とすれば良いです。

これを利用して、データベースにデータを入力してみます。

User.create(name:"Aさん",age:22)

という感じで、nameがAさん、ageが22のデータをデータベースに追加することができます。

追加したデータを参照するには、

User.find(1)

とすれば、1番目(id)に保存されたデータを表示します。

namやageなどで探したい場合は、

User.find_by(age:22)

とすれば良いです。

ここで、findのコマンドを用いると、ageが22のデータが複数あっても、一番最初に該当したものだけが表示されます。

該当したものを複数表示したい場合は、whereコマンドを使います。

User.where(age:22)


とすれば良いです。


この、簡単にRubyを使うモードを抜け出す時は、exitとコマンド入力すれば良いです。

データの編集・取り消し


入力されているデータを全て参照するには、

(テーブル名 users とか) = User.all

を用います。


データを編集するには、何か変数にデータを紐付けし、

(何か変数名) = User.find(3)


変更したいデータのカラム名を指定し、置き換えるデータを入力します。

(何か変数名).name = "E"

その後、これを保存すればデータが更新されます。

(何か変数名).save




また、データを削除するためには、

(何か変数名).destroy

とすれば良いです。

ここで、大文字はモデル名を表す。ということを覚えておくと良いです。


お詫びと今後について


はい、ということで、長きにわたってSkillHacksの勉強してきたことをまとめたつもりでしたが、多分見返すとやってる最中のメモ書きをそのまま上げてるだけなので、第三者が見てもわかりづらいんじゃないかな、と考えるようになりました。

正直、僕の拙いメモを見るよりもSkillHacksの動画解説を見る方が10倍、いや1億倍わかりやすいです。

そんな中で僕がこのブログを見てくれる人に対して提供できるものは、何もプログラミングやったことないけど、何か見てみたら面白そうじゃん。って思ってもらえるような体験・経験なんじゃないかなって考え出しました。

ということで、SkillHacksでのこれからの進捗報告は、SkillHacksでできたもの、それが実際にどんな開発に役立ちそうか、楽しいと思ったことなどを発信する場としていきたいと思います。


今まで、クソ見にくい拙いメモ書きを見てくださっていた方々、ありがとうございました。
何か他に気になることなどあれば、TwitterのDMなんぞいつでも返信します。
コロナで暇なので。

それでは、また。



〜Skill Hacksが気になった方〜

-Skill Hacks- 動画で学ぶWebアプリ開発講座


〜迫さんは他にも色々やられてるみたいです〜

-Design Hacks- 今日から使える実践デザイン講座

-FrontHacks- フロントエンドプログラミング

-PHP Hacks- PHPプログラミング学習講座

-DietHacks- 現役パーソナルトレーナーのオンラインダイエット講座

-Instagram Hacks- 現役法人コンサルが教えるインスタ運用術

-Blog Hacks- 完全サポート付きブログ講座

-Movie Hacks- YouTubeに特化した動画編集講座