🐥
Rails で最初のレコードのカラムの値を取得する
例えば次のように『一番最後に作成されたレコード』を取得する場合に『必要なカラムだけ取得する』ことがあります。
User.create(name: "homu")
User.create(name: "mado")
User.create(name: "mami")
# 作成日でソートしてから limit(1).pluck で『一番最初の要素』を取得する
name, created_at = User.order(created_at: :desc).limit(1).pluck(:name, :created_at).first
puts "#{name} が #{created_at} で最後に作成されました"
# => mami が 2024-08-22 14:15:23 UTC で最後に作成されました
こういう『最初の要素を取得する』場合に limit.pluck.first
ではなくて .pick
が利用できます。
# pick で一番最初のレコードのカラムの値を取得する
name, created_at = User.order(created_at: :desc).pick(:name, :created_at)
puts "#{name} が #{created_at} で最後に作成されました"
# => mami が 2024-08-22 14:15:23 UTC で最後に作成されました
これは普通に便利。
Discussion