30DAYSトライアル4th

30DAYSトライアル4th(Rails)のまとめ【DAY24(仮)】

30DAYSトライアル4th(Rails)DAY24(仮)の課題は「Progate Rails コース(9章まで)」です。
※(仮)としているのは東京フリーランスの記事ではDAY20までしか書かれていないので、その先を勝手に進めているからです。

以前の30DAYSトライアル4th(Rails)DAY20以降の進め方の記事ではDAY24(仮)はProgate Ralisの道場コース3章までの2日目にしてたんですが、1日で完了できたので、次の学習コースに進んでいきます。

30DAYSトライアル4th(Rails)DAY24(仮)の学習内容

30DAYSトライアル4th(Rails)DAY24(仮)の学習内容は以下のとおりです。

30DAYSトライアル4th(Rails)DAY24(仮)
  • 投稿とユーザーを紐つける:複数テーブルの紐つけ(JOIN)
  • 東京の編集・削除の制限:複数テーブルと紐つけた上での機能制限

他のテーブルデータと紐つける

紐つけを行いたいテーブル主キー値を外部キーとしてカラムに追加することで紐つけを行う
※元となるデータ(外部キーを持つデータ)を取得し、その外部キーを使って取得したいテーブルのデータを取得する

モデルにインスタンスメソッドを定義する

モデル内にインスタンスメソッドを追加し、該当のモデルから生成したインスタンスからインスタンスメソッドを呼び出すことが可能。

こうすることでモデルに対しての操作やデータ取得を共通化できる。

インスタンスメソッドは30DAYSトライアル4th(Rails)のまとめ【DAY3】で行ったProgateのRubyコースなどで登場してます。

条件に合致するデータを複数件取得する:whereメソッド

find_byは条件に合致するデータの先頭1件のみを取得するのに対して、「whereメソッド」は条件に合致する全てのデータを取得すりことができます。

取得した値は配列となっている。

まとめ

今回は複数のテーブルを紐つけてデータの表示や制限を行うことの学習でしたが、あまり目新しいことは登場しませんでした。

SQLであればJOINで一発で取得できますが、Railsだと今回のように元データを取得して、そのデータを元にほしいデータを取得するという書き方になるんですかね。

そうだとしても、SQL文書くより構文を閣僚は減りますし、SQLもJOINで一発でかけるだけで、内部的には一つ一つ取得してるから一緒っちゃ一緒だと思います。

個人的には今勤めているソフトウェア会社で使ってるDBのような操作っぽい感じで扱えるので特に違和感はないですし。

しかし、今回の複数テーブルの紐付けはどんなシステムを作成するとしても必須なので、しっかりとおさえておきたたいところです。

ABOUT ME
Jyu2
ソフトウェア会社(SIer)で10年以上勤務のシステムエンジニア|ポケットWiFi使用歴2年以上|ポケットWiFi+αで快適でお得なインターネット環境を構築するための情報を発信|その他、IT情報やWebサービス、アプリ、ガジェットなどの情報を発信|自分と他の人のカバンの中身を紹介するメディア「カバンの中身ラボ(https://kaban-no-nakami-labo.com/)」も運営しています。 ポケットWiFi選びに迷ったらTwitter、お問合せフォームからご連絡ください。