Sto costruendo un'app per appuntamenti in cui la User
s può approvare altri utenti. Io uso un modello Approval
per tracciare queste relazioni. Ogni Approval
ha un user_id
e un approved_id
- l'ID utente dell'User
approvato. Ha anche rejected_at
, un datetime per indicare che uno User
ne ha rifiutato un altro.Programmazione di DatingApp: associazione ActiveRecord per la ricerca di utenti privi di approvazioni o di approvazioni a 1 via.
Per presentare agli utenti idonei alla current_user
, devo interrogare per gli utenti per i quali vi sono o
- No
Approval
rapporto Approval
rapporto solo con ilapproved_id
comecurrent_user.id
(che significa l'Utente ammissibili approva il current_user ma non c'è relazione inversa- Escludi
User
s che hanno unApproval
con un attributo non uguale a zerorejected_at
doveapproved_id
è ilUser
ouser_id
è ilcurrent_user
.
Come posso creare una query di ActiveRecord per trovare gli utenti idonei? Capisco che posso fare un joins
su Approval
ma voglio anche tenere conto del fatto che non esiste la relazione Approval
tra User
s! Sto pensando che potrebbe avere più senso fare solo 2 domande distinte, ma mi piacerebbe sapere se è possibile combinare in un unico ..
Stai cercando una query che soddisfi tutti e tre o uno dei tre? – Pavan
Tutti e 3 bult c'è un XOR con il primo e il secondo. Credo che il n. 1 e il n. 2 siano possibili con una clausola OR – quantumpotato