Piszę zapytanie Rails 3 ActiveRecord, używając składni "where", która używa zarówno SQL IN, jak i operatora SQL OR i nie może dowiedzieć się, jak używaj ich obu razem.Rails 3 Zapytanie ActiveRecord przy użyciu zarówno SQL IN, jak i operatorów SQL OR
Prace Ten kod (w moim modelu użytkownika):
Question.where(:user_id => self.friends.ids)
#note: self.friends.ids returns an array of integers
ale ten kod
Question.where(:user_id => self.friends.ids OR :target => self.friends.usernames)
zwraca ten błąd
syntax error, unexpected tCONSTANT, expecting ')'
...user_id => self.friends.ids OR :target => self.friends.usern...
Każdy pomysł, jak napisać to w szynach lub po prostu jakie powinno być surowe zapytanie SQL?
Dzięki! Dokładne zapytanie, którego użyłem to: Question.where ('target IN (?) LUB user_id IN (?)', Self.friends.usernames, self.friends.ids) – kateray
Dobrze, zapomniałem o tym. Czuję, że powinny być sposobem w formacie => hash. nie powinieneś potrzebować wzorca, aby dodać OR pomiędzy 2 ważnymi warunkami, ale kogo to obchodzi. –
ideą aktywnego rekordu jest być agnostykiem bazy danych, więc używanie surowego sql w szynach nie powinno być uważane za najlepsze rozwiązanie, z wyjątkiem sytuacji, gdy wydajność ulega pogorszeniu, co nie ma miejsca w tym zapytaniu. – nunopolonia