私の DB では、ユーザーとロールの間に多対多の関係 ( HABTM ) があります。特定の秘書に関連付けられているユーザーのすべてのロール名を取得しようとしています。
私は次のことをまとめることができました:
class Secretary < ActiveRecord::Base
def getRoles
rolenames = Set.new
Role.all.map { |role| role.users.map { |user| rolenames << role.name if user.manager.secretary == self } }
rolenames.to_a
end
end
...これはうまくいきますが、適切に作成された「where」ステートメントは、データベースにあまり影響を与えずに同じ結果を生成するはずです。
上記をより「ネイティブな」ActiveRecordクエリに変換することは可能ですか?