find_eachメソッド
find_eachメソッド
勉強をしていく中で、下記のようなコードで戸惑ってしまった事があったので、こちらに備忘録として記載します。
User.find_each(&:id)
[find_each]メソッドとは?
大量のレコードをループ処理する際にメモリの消費量を抑える為に、デフォルトでレコードを1000件毎に区切ってループ処理するメソッド
モデルのクラスに対して呼び出すことが出来るメソッド
1000件毎にレコードを取得しループ処理する際に、主キーを昇順でソートする
(&:id)とは?
(&)でメソッドをブロック展開するのを省略する書き方
(:id)と記載することで、ブロックで取り出した要素を[.id]メソッドで実行するという事
つまり以下と同じになる
User.find_each do |x| x.id end
参考記事:
Railsでよく見る arr.map(&:id) の意味 - Qiita