Czy ktoś może to wyjaśnić?szyny wybierz i włącz
Spowoduje to wykonanie 3 zapytań, jednego do pobrania projektów, jednego do pobrania użytkowników do tych projektów i jednego do pobrania firm.
Project.select("name").includes([:user, :company])
Wykonuje 3 zapytania i całkowicie ignoruje bit wyboru.
Project.select("user.name").includes([:user, :company])
Spowoduje to wykonanie 1 zapytania z właściwymi lewymi złączeniami. I wciąż całkowicie ignoruje wybór.
Wydaje mi się, że szyny ignorują wybór przy uwzględnieniu. No dobra, ale dlaczego, kiedy wstawiam pokrewny model w selekcji, zmienia się on z wydawania 3 zapytań na wydawanie 1 zapytania?
Zauważ, że jedno zapytanie jest tym, czego chcę, po prostu nie mogę sobie wyobrazić, że jest to właściwy sposób, aby go uzyskać, ani dlaczego działa, ale nie jestem pewien, jak inaczej uzyskać wyniki w jednym zapytaniu (. joins wydaje się używać INNER JOIN, którego tak naprawdę nie chcę, a kiedy ręcznie sprecyzuję warunki łączenia do .joins w gemie wyszukiwania, używamy maniaków, gdy próbuje on ponownie dodać sprzężenia o tej samej nazwie).
możliwy duplikat [Rails 3 - wybierz z włączeniem?] (Http://stackoverflow.com/questions/4047833/rails-3-select-with-include) –