mit Ihren Beziehungen wie folgt definiert:
class User < ApplicationRecord
has_many :user_positions
end
class JobTitle < ApplicationRecord
has_many :user_positions
end
class UserPosition < ApplicationRecord
belongs_to :user
belongs_to :job_title
end
Dann können Sie joins
verwenden, mit beiden Modellen job_title
und user_position
durch das user
Modell, und zu wissen, die user.id
, so ist, dann können Sie pluck
verwenden das bekommen benötigtes Attribut:
User.joins(user_positions: :job_title).where(id: 1).pluck('job_titles.title')
der Ihnen eine SQL-Abfrage geben würde, wie:
SELECT job_titles.title
FROM "users"
INNER JOIN "user_positions"
ON "user_positions"."user_id" = "users"."id"
INNER JOIN "job_titles"
ON "job_titles"."id" = "user_positions"."job_title_id"
WHERE (users.id = 1)