基本的なことかもしれないけど、知らなかったのでメモ
環境
ruby 2.3.0
rails 4.2.6
やり方
例として下記のようなModelがあり
Projectに所属するMemberの名前が配列で欲しいとする場合
class Project < ActiveRecord::Base
has_many :members
end
class Member < ActiveRecord::Base
def self.names
# relationを使うとhas_manyで関連づけられたデータが取れる
relation.map(&:name)
end
end
すると下記のように取れる
@project.members.names
ただ、下記のようにするとrelationが無いのでエラーが発生する。
Member.names