Alors, voici une petite question. J'utilise Rails avec une base de données héritée énorme, et il a beaucoup de clés étrangères cassées qui doivent être traitées comme nils.Clés étrangères rompues dans Rails
Alors, quand je fais: Foo.find (: all,: conditions => {...},: include =>: bar)
Rails avec toutes les barres de connexion avec SELECT * FROM bars où id IN (...). Jusqu'ici tout va bien, seulement deux requêtes sql. Maintenant, le problème est que pour les fks cassés, quand j'essaye de faire foo.bar plus tard, Rails essaye de récupérer la barre avec les barres SELECT * FROM WHERE id = broken_id. Ensuite, il retourne nil (correctement pour moi), mais tous ces ID SELECT = s'avèrent être un problème de performance majeur, car il bombarde mysql avec trop de requêtes sql.
Un moyen facile de vérifier si foo.bar est déjà défini et si ce n'est pas juste le forcer à zéro?