2017-05-04 38 views
5

Mam model, Student, który ma relację habtm z innym modelem, Group. Poniższy kod:Poszukiwanie powiązania wyszukiwania po aktualizacji szyn

Student.ransack(groups_id_eq: 22839).result 

wywołuje następujące SQL:

SELECT "students".* FROM "students" 
LEFT OUTER JOIN "groups_students" ON "groups_students"."student_id" = "students"."id" 
LEFT OUTER JOIN "groups" ON "groups"."id" = "groups_students"."group_id" 
WHERE "groups"."id" = NULL 

Zauważ, że to przekształcenie 22839 do NULL

ten pracował przed uaktualnieniem do szyn 5.

mam inny model, User, z tą samą relacją habtm z grupami. Kiedy próbuję Student.ransack(groups_id_eq: 22839).result, to działa i tworzy pożądany kod SQL. Różnica między dwoma modelami jest to, że Student ma identyfikator UUID, natomiast User

EDIT: To wydaje się być błąd, a ja złożyła issue z bardziej kompleksowej gist.

+1

Jest kilka problemów z tym problemem. Próbowałem go uruchomić, ale nie powiodło się podczas tworzenia tabeli 'studenci' z powodu wartości domyślnej. Zmieniono kod, aby wygenerować uuid w oddzwanianiu AR. Następnie kod działa zgodnie z oczekiwaniami. Testy przechodzą i wygenerowany sql wygląda dobrze. –

+0

Czy możesz stworzyć sens i umieścić go tutaj? –

+0

Według numeru github już rozwiązałeś problem, czy to prawda, czy też twoje pytanie jest nadal aktualne? – BoraMa

Odpowiedz

0

Rozwiązałem problem przez łatanie małpy ActiveRecord AliasTracker.

Zobacz mój gh issue, aby uzyskać pełne wyjaśnienie.