関連先のidだけ取得する便利メソッド【Rails】
June 26, 2022
ユーザーが持ってる〇〇(例えば作品)の id を取得したいときがある。
コード的には下記の状態。
class User < ApplicationRecord
has_many :works
end
class Work < ApplicationRecord
belongs_to :user
end
ひとつは pluck を使う方法がある。 (user = User.first)
user.works.pluck(:id) #=> [1,2,3]
これを一撃で取得するメソッドがこちら。
user.work_ids #=> [1,2,3]
has_many すると「has_many しているテーブルの単数形_ids」というメソッドが生えるみたい。便利!
参考: has_many (ActiveRecord::Associations::ClassMethods) - APIdock https://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many
collection_singular_ids
Returns an array of the associated objects’ ids
(了)