J'ai deux tables: keywords_reports et mots-clés (avec les modèles AR pertinents).La requête de recherche ActiveRecord avec jointure n'inclut pas les données de la table jointe.
keyword_reports a une colonne keyword_id, que je me sers à se joindre à la table des mots-clés comme ceci:
KeywordReport.find(:all, :joins => :keyword, :conditions => {:page_id => 10})
qui tire correctement les dossiers pour keyword_reports, mais ne comprend pas les données de la table mot-clé joint .
J'ai regardé le journal pour voir le SQL généré et il est en train de faire:
SELECT `keyword_reports`.* from...
au lieu de:
SELECT * from ...
dont il a besoin de faire pour que je puisse obtenir toutes les données . Quand je modifie manuellement le SQL pour le formater comme souhaité, il saisit toutes les données. J'ai essayé d'utiliser: includes et: select en vain. Comment empêcher la requête de limiter les résultats uniquement à la première table?
Bonjour, Merci pour votre réponse. La relation est en réalité inversée. #keyword has_many: keyword_reports #KeywordReport belongs_to: mot-clé Sur cette base, je ne pense pas: include me aider. Le SQL généré est deux instructions avec la suggestion ci-dessus, et ils n'effectuent pas de jointure. La deuxième instruction essaie juste de trouver des enregistrements de mot-clé en utilisant l'opérateur IN de keyword_id retourné à partir du jeu de résultats keyword_reports. Peut-être qu'il me manque quelque chose alors tout autre conseil est apprécié. – Scott