2012-10-03 2 views
2

Je travaille sur des rails.Comment utiliser la jointure interne dans Ruby On Rails

mon besoin est,

@accountUrl = Account.find_by_id(current_account_id) 

@details = Detail.find_by_acc_id(@accountUrl.id) 

Comment écrire jointure de requête exemple ci-dessus

peut que ce soit.

+1

Vous devez donner un exemple de ce que vous essayez de faire, du code que vous utilisez pour le faire, des résultats attendus et des résultats ou des exceptions réels. – rewritten

+0

ok.i spécifiez maintenant –

+0

Ajoutez les pièces pertinentes de vos modèles (les lignes dans les sous-classes ActiveRecord :: Base où vous spécifiez les relations: belongs_to/has_one etc.) – rewritten

Répondre

10

Dans ce cas simple Rails n'utilise pas une jointure, il rejoint "dans le code":

Account.includes(:details).where(:id => current_account_id).first 

Il va faire deux requêtes distinctes.

Si vous avez besoin d'une condition pour la sélection, vous devez joindre « à la main » (ou par un champ d'application)

Account.joins(:details).where("details.name" => selected_detail).first 

Cela fera une INNER JOIN et retourner uniquement les comptes satistfying les conditions.

+0

Ok, je vais essayer maintenant. Je vous remercie. –

Questions connexes