Używam przykładu z Railsami 3, ale uważam, że dotyczy to również Rails 2.3.Railsy, dlaczego łączenia zwraca tablicę z wartościami innymi niż uniq?
Załóżmy, że mam model City, który ma wiele lokalizacji. Próbuję znaleźć Miasta, które mają lokalizacje.
używam następujący kod:
City.joins(:locations)
Ale tablica wyjściowa jest:
=> [#<City id: 5, name: "moscow", created_at: "2010-07-02 15:09:16", updated_at: "2010-07-02 15:09:16">, #<City id: 5, name: "moscow", created_at: "2010-07-02 15:09:16", updated_at: "2010-07-02 15:09:16">, #<City id: 5, name: "moscow", created_at: "2010-07-02 15:09:16", updated_at: "2010-07-02 15:09:16">, #<City id: 5, name: "moscow", created_at: "2010-07-02 15:09:16", updated_at: "2010-07-02 15:09:16">]
długość tablicy wynosi 4 (liczba miejsc w Moskwie).
W jakim przypadku może być przydatny? Dla jakich celów są 4 kopie jednego obiektu w tablicy wyjściowej?
Mogę używać City.joins (: lokalizacje) .uniq, ale straciłem zwinność arel.
Mam dwa pytania:
- Dlaczego zarejestrowała się powroty non unikalny wachlarz?
- Jakie jest preferowane użycie zamiast złączeń w tym celu?
Dziękujemy! grupa jest tym, czego potrzebuję! Ale dlaczego szyny nie chcą grupować samodzielnie? Obiekt szyn wyjściowych to tablica miast bez żadnych lokalizacji. I IMHO nie ma przypadków użycia dla takiego wyjścia. – petRUShka
Dzięki za pomocną odpowiedź. Jedno pytanie - czy City.x naturalnie nie przywróci miasta bez potrzeby wybierania oświadczenia? –
@edebill jest jakiś sposób na pominięcie tej 'group ('cities.id')' na każdym zapytaniu? – asiniy