J'ai donc une classe ActiveRecord avec deux étendues nommées différentes qui incluent des paramètres de jointure. Lors de l'exécution d'un rapport, j'arrive d'avoir une situation où l'on est appelé à l'intérieur de l'autre:Étendues nommées avec jointures imbriquées (erreur explosive)
1 Model.scope_with_some_joins.find_in_batches do |models|
2 models.each do |mdl|
3 other_comparisons = Model.scope_with_other_joins
4 end
5 end
Mon problème est sur la ligne 3 - Je reçois une erreur d'exécution me montrant que, pour une raison quelconque lors de l'exécution de la deuxième interroge la maintenance de l'étendue join à partir de la requête externe. J'ai vraiment besoin qu'il soit exécuté séparément, sans partage de contexte avec la requête externe. Des pensées ou des idées?
(Je dois mentionner que le problème est une « colonne ambiguë » erreur car il y a une table qui est jointe à des deux requêtes)
Merci jonnii! Une note est que "with_exclusive_scope" est protégé (au moins dans les rails 2.3.2) donc pour en faire usage, vous devez utiliser:
–Vous ne l'utiliseriez pas habituellement dans un contrôleur, je mettrai à jour mon message à vous montrer comment l'utiliser. – jonnii