Comment faire pour ajouter `:include` à default_scope?
Recherche sur le net, j'ai trouvé que je devrais utiliser :include
, mais qui ne semble pas modifier la requête SQL est généré:
def Post #model
default_scope :order => 'created_at DESC', :include => :author
end
Avec ou sans le :include
, le SQL est le même (c'est seulement la sélection de la table posts).
Quelle est la façon de le faire?
OriginalL'auteur Zabba | 2011-02-21
Vous devez vous connecter pour publier un commentaire.
Que faire si vous ne
C'est la façon dont il est documenté dans les Rails de l'API pour
default_scope
&portée
, plutôt que le paramètre de hachage méthode que vous utilisez.includes
(au pluriel), œuvres. Également constaté que l'utilisation de la table de hachage de style, à l'aide de:joins
au lieu de:include
œuvres.J'ai édité ma réponse à réfléchir, merci!
Sur son propre est généralement interprété comme le Rubis inclure des mots clés et il n'aime pas ça 🙂
n'est pas un mot clé, c'est une méthode (
defined?(include) #=> "method"
), et donc être substituée. Bien sûr:include
est juste un autre symbole.dans les rails 4, vous devez utiliser les blocs pour cette
default_scope { includes(:author) }
OriginalL'auteur Andrew Marshall