0
0

More than 1 year has passed since last update.

【Rails】特定のカラムのデータを配列で取得する方法【初学者の疑問点を簡潔に解説】

Last updated at Posted at 2021-12-25

はじめに

 本記事は、プログラミングの学習を始めて1ヶ月の初学者が、学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
 そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
 間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。

今回の疑問点

 今回の疑問点は、

  データベースから特定のカラムを取得して、all?メソッドで判定する方法
 
 です。 

疑問点についての解説

結論

pluckメソッドを使用して配列でデータを取得し、all?メソッドで判定する。

具体例

sample_app.rb

@Taro = User.where(name: "太郎").pluck('age')
@Taro.all?{ |w| w == '20' }

上記のように記載することで、
whereでnameカラムが太郎であるレコードを全て取得し、pluckでさらにageカラムのみに絞り、配列で取得します。
そして、@Taro.all?{ |w| w == '20' }で取得した配列の要素一つ一つに対して20であるか否か判定され、全てが20であれば、trueが返されます。
whereで取得した太郎さんが全員20歳であればtrueになります。

selectメソッドを使うとActiveRecord::Relationオブジェクトを返すので、all?メソッドが使用できないため、配列で取得するためにpluckメソッドを使用しています。

ActiveRecord::Relationオブジェクトをeachとifを使って判定しても同じような処理を実現することはできますが、記述が長くなってしまいます。

まだ、学習を始めて2ヶ月弱のため、もっと良い書き方があれば、ご教示いただけますと幸いです。

まとめ

時間がある時にもう少し丁寧に書き直そうと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0