2016-03-23 8 views
2

In einer Rails 4 App habe ich folgende Verbände:Rails 4 Inner Join auf dem gleichen Tabelle

User has_many :bookings 
Booking belongs_to :client, class_name: "User" 

ich einen JOIN durch Tabellen zu machen versuchen, die Buchung und den Client zu greifen:

User.joins("INNER JOIN bookings on users.id = bookings.user_id").joins("INNER JOIN users on bookings.client_id = users.id") 

Welche zurück:

PG::DuplicateAlias: ERROR: table name "users" specified more than once 

gibt es eine Lösung, die 2 Assoziationen zu holen?

Antwort

8

Versuchen

User.joins("INNER JOIN bookings on users.id = bookings.user_id").joins("INNER JOIN users AS bookings_user on bookings.client_id = bookings_user.id") 

Notiere die users AS bookings_user

+0

, das funktioniert! Vielen Dank. –