2010-04-13 9 views
0

Hé les gars (et les filles ^^) !!!Comment faire une "rejoindre" avec une portée anonyme en ruby ​​

Est-ce que tout le monde sait comment faire une "jointure" avec une portée anonyme dans ruby ​​??? Avec une portée nommée il suffit d'ajouter ": join => ....." mais je ne trouve pas vraiment le moyen de le faire avec des anonymes ....

Thx à l'avance pour l'aide;)

+0

Il serait utile que vous fournissiez des modèles et les colonnes auxquelles vous essayez de vous joindre. –

Répondre

0

Cela dépend probablement du contexte de l'endroit où vous essayez de joindre. Dans le contexte de la classe de tout modèle, scope (: find) renverra les paramètres de la portée actuelle et ceux-ci peuvent être combinés ou réinterprétés dans une jointure si nécessaire.

Pouvez-vous modifier votre question avec un exemple de code?

+0

Un exemple: i AVONS une société de classe qui has_one "informations" (dans la base de données => 2 tables, entreprises et informations) scope = Company.scoped ({}) scope = « scope.conditions informations. size> =? ", datas [: with_size_gt], sauf les données [: with_size_gt] .blank? Avec ceci, j'ai une erreur mysql m'indiquant qu'il ne peut pas trouver la colonne "informations" ce qui est normal parce que c'est une table différente. Dans l'original named_scope, il y a un: join => [: informations] qui le font fonctionner mais je ne sais pas comment le faire dans ma portée anonyme ... J'espère que c'est clair ^^ – Mathieu

+0

On dirait que vous pourriez utiliser un cache de compteur de relations et éviter d'avoir à faire une jointure en premier lieu. Ensuite, vous pouvez faire une sélection simple sur "companies.informations_count> =?" au lieu. – tadman