icon
icon

検索が一瞬でできる!Ruby on Railsのpluckの使い方【初心者向け】

Ruby on Railsで書くpluckの使い方について解説しています。pluckを利用すればモデル内の検索が一発でできます。他のメソッドと比較して紹介しているので、どんな時に便利なのか理解できるはずです。

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

監修してくれたメンター

mentor-hakamata

新卒入社した会社がブラックな環境で自己研鑽の時間も作れず、これではだめだと思い転職。2度の転職を経て現在3社目。まだまだ挑戦中。
C#, Ruby, Python, JavaScriptなど経験。

Rubyのpluckメソッドの使用方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

テーブルから指定したカラムの値を配列に加工して取得するときに使用できるので、知っておくと今後役立つでしょう。

目次

1時間でできる無料体験!

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

 

田島悠介

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

大石ゆかり

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

田島悠介

pluckメソッドの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

pluckメソッドとは

テーブルから指定したカラムの値を配列に加工して取得できます。

1つ、または複数のカラムを指定することができます。

 

pluckメソッドの書き方

モデルに対して、pluckメソッドを呼び出すだけです。

モデル名.pluck(:カラム名)

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

pluckメソッドの使い方

pluckメソッドの使い方として、2つのカラム値を取得する方法をご紹介します。

  • カラムの値を取得する
  • 複数カラムの値を取得する

それぞれの取得方法について以下で解説します。

カラムの値を取得する

1つのカラムの値を取得する場合は

モデル名.pluck(:カラム名)

このようにすることでカラムの値を取得することができます。

結果は[“カラム名の値1”, “カラム名の値2”]という配列になります。

複数カラムの値を取得する

複数のカラムの値を取得する場合は

モデル名.pluck(:カラム名1, :カラム名2)

このようにすることでカラムの値を複数取得することができます。

結果は[[“カラム名1の値1″,”カラム名2の値1”],[“カラム名1の値2″,”カラム名2の値2”]]という二次元配列になります。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

pluckメソッドとmapメソッドの違い

mapメソッドを使っても同様のことが可能です。

モデル名.all.map(&:カラム名)

結果は[“カラム名の値1”, “カラム名の値2”]という配列になります。

mapメソッドで取得したデータに対して、カラム名で指定した値を順番に取得し、配列にしています。

これをpluckメソッドで書くと前述の通り、

モデル名.pluck(:カラム名)

こうなりますので、mapメソッドを使用するより簡単に書けます。

注意するべきなのは、pluckメソッドを実行する対象がモデル名で指定したテーブルの全てのデータということです。

条件に応じたデータのカラムの値を取得したい場合は

モデル名.where(条件).pluck(:カラム名)

このようにwhere句などで条件を付けるようにしましょう。

 

pluckメソッドを利用してカラム値を取得してみよう

例えばUserというモデルが存在していて、name, emailというカラムがある場合を想定します。

usersテーブルには複数件データが登録されている状態です。

nameカラムの値を取得してみましょう。

irb(main):016:0> User.pluck(:name)
  User Pluck (0.6ms) SELECT "users"."name" FROM "users"
=> ["tarou", "zirou"]

nameカラムの値が配列で取得できていますね。

次にnameカラムとemailカラムの値を取得してみましょう。

irb(main):017:0> User.pluck(:name, :email)
  User Pluck (0.6ms) SELECT "users"."name", "users"."email" FROM "users"
=> [["tarou", "tarou@example.com"], ["zirou", "zirou@example.com"]]

nameカラムとemailカラムの値が二次元配列で取得できていますね。

最後に条件を付けて取得したデータのnameカラムを取得してみましょう。

irb(main):019:0> User.where("id > 1").pluck(:name)
  User Pluck (0.6ms)  SELECT "users"."name" FROM "users" WHERE (id > 1)
=> ["zirou"]

条件で絞り込んだデータのnameカラムが取得できていますね。

 

1時間でできる無料体験!

まとめ

本記事では、Ruby on Railsにおけるpluckメソッドについて解説しました。

  • pluckメソッドとは
  • pluckメソッドの書き方
  • pluckメソッドの使い方
  • pluckメソッドとmapメソッドの違い

pluckメソッドを理解することで、効率的な配列データの取得を実現できます。

ぜひ使いこなせるように覚えておきましょう。

 

Ruby on Railsを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのWebアプリケーションコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、Ruby on Railsを使ったWebアプリケーション開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する