Comment ajoutez-vous deux relations ensemble? Lorsque j'essaie l'opérateur +, il renvoie un tableau. Mais j'en ai besoin pour renvoyer une relation. P>
merci, Mike p>
3 Réponses :
Essayez:
new_relation = relation.merge(another_relation)
Et si l'une des relations entre être nulle?
@Matt fonctionne toujours même si on est nul
@kittyminky Si l'on est nul, le résultat devient nul.
Quelqu'un découvre jamais comment gérer un cas nul? Je ne veux pas que les deux relations deviennent nulle si l'une est.
Si vous ajoutez ActiveRecord :: Objets de relation pour obtenir un "résultat" plutôt que "et" (vous obtiendriez "et" comportement en chaînant), et vous avez toujours besoin du résultat pour être une relation ActiveRecord :: Relation Pour jouer sympa avec un autre code (méta_search, par exemple) ....
def matching_one_or_two temp = Model.matching_one + Model.matching_two Model.where('id in (?)',temp.map(&:id)) end
Vous pouvez ajouter deux liens activeCord :: relation avec arel contraintes Vous pouvez utiliser ou opérateur trop p> exemple réel P> constraints_1 = User.where(id: 1..5).arel.constraints
constraints_2 = User.where('id != 2').arel.constraints
User.where(constraints_1.and(constraints_2))
Pourriez-vous s'il vous plaît corriger la parenthèse? Ça fait mal mes yeux :-p
Pourquoi ne pouvez-vous pas faire des étendues pour obtenir tout ce dont vous avez besoin? Est-ce quelque chose de complexe ou vous ne pouvez tout simplement pas faire dans ce cas? Si vous pouvez faire quelque chose au niveau de la base de données, ne laissez pas le niveau d'application.