Y a-t-il un moyen d'utiliser MySQL Union dans Rails 3? P>
4 Réponses :
Model.find_by_sql("your union query")
Je pense que la seule façon dont vous allez obtenir cela pour travailler en exécutant directement la requête.
MyModel.find_by_sql("...")
Comme vous pouvez le lire sur ce fil, des personnes travaillent sur une meilleure solution pour la création de requêtes de l'Union dans des rails: P>
https://github.com/rail/arel/pull/118 < / p>
Entre-temps, j'ai écrit un petit hack avec lequel vous pourrez créer des requêtes syndicales simples et faire des filtres avec des commandes distinctes et limites: p>
J'ai trouvé un hack soigné à l'aide de Select. Par exemple, si vous souhaitez faire un syndicat entre l'utilisateur et le renforçateur d'autres.
"SELECT id from other_users union select id FROM users "
C'est ce que j'ai appelé génial, mais juste pour avertir certaines personnes qui feraient une erreur comme ce que j'ai déjà fait. Par défaut, lorsque vous faites avec pure SQL, il devrait être (Sélectionnez ID d'autre_users) Union (sélectionnez ID d'utilisateurs); code> Lorsque vous le prenez à des rails, n'écrivez pas comme
user.select ("(ID d'autres_users) Union (SELECT ID)") CODE> car il générera
SELECT (ID d'autre_users) Union (sélectionnez ID) à partir des utilisateurs code>