オーダーメイドコース
icon
icon

Railsのjoinsの使い方を現役エンジニアが解説【初心者向け】

初心者向けにRailsのjoinsの使い方について現役エンジニアが解説しています。joinsは複数のテーブルを内部結合するためのメソッドです。内部結合は共通する複数のテーブルを一つにまとめる機能です。モデル名に続けてメソッドを書くことで内部結合させることが出来ます。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Railsのjoinsの使い方について解説します。

 
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Railsのjoinsの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

joinsとは

joinsは複数のテーブルを内部結合するためのメソッドです。内部結合とは、複数のテーブルにまたがるレコードを条件の一致するものだけくっつけることを指します。

例えば、以下のようなpostとuserのテーブルがあるとします。

Userテーブル

id name
1 佐藤
2 鈴木

Postテーブル

id content user_id
1 散歩に出かけました 1
2 海で泳いだ 1
3 釣りをした 2

joinsを使用すると、userテーブルとpostテーブルをuserのidとpostのuser_idを基準にくっつけることができ、以下のようなテーブルを得られます。

これによって、複雑なデータの呼び出しや検索が可能になります。

id content user_id name
1 散歩に出かけました 1 佐藤
2 海で泳いだ 1 佐藤
3 釣りをした 2 鈴木

 

joinsの使い方

joinsは以下のように使用します。

モデル.joins(条件)

条件には、”:モデル名”を使うことで結合させることができます。カンマで続けて記載することで、複数のテーブルを結合させることも可能です。

先ほどのuserテーブル、postテーブルを結合させる場合には

User.joins(:posts)

と書くことで結合させることができます。

[PR] 未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

それでは実際に書いてみましょう。joinsを使用するした下準備に、以下のコマンドでモデルを用意します。

rails g model User name:string
rails g model Post content:string references:user

マイグレーションファイルに間違いがなければ、以下を実行します。

rails db:migrate

また、user.rbでhas_manyでpostを持つようにします。

has_many :posts

これで準備は完了です。postとuserテーブルに適当な値を流しRailsのコンソールで以下のコマンドを実行しましょう。

User.joins(:posts)

user_idを基準に、userテーブルとpostテーブルをくっつけることができているはずです。

以上で解説を終わります。

 

筆者プロフィール

メンター金成さん

フリーランスエンジニア。
Railsの案件を中心に、様々なアプリケーションを開発してます。

使える言語は、ruby python go 。最近はgoにハマってます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。