Il y a un rubis sur le code de railsRequête indépendante ActiveRecord dans ActiveRecord :: contexte Relation
class User < ActiveRecord::Base
def self.all_users_count
User.all
end
end
User.all_users_count
retours, par exemple,
User.limit(5).all_users_count
il Retournons maintenant en raison du contexte ActiveRecord :: Relation, malgré le nom de wrroute classe User.all
au lieu simple, all
(.to_sql montrent que la requête contient toujours limit
ou where id
ou d'autres choses dans d'autres cas)
Alors, comment puis-je faire des requêtes AR contexte indépendant à l'intérieur des méthodes de modèle? comme User.all
et autres?
Merci!
Ps. Ou peut-être mon code a une erreur ou quelque chose comme ça, et en fait User.all
dans toutes les méthodes et le contexte doit toujours retourner le nombre de lignes correctes de cette table modèle
** Oui, ça marche, merci! ** Je recherche "contex t "et" portée "et autre chose et ne trouve rien sur ma situation. Je me suis douté qu'il existe une méthode similaire, mais il est difficile de formuler ce problème pour Google. Ps. Oui, je suis d'accord, c'est un comportement inattendu, mais c'est ... au moins dans mon cas – dmitryck
UPD. 'unscoped' fonctionne bien dans certains cas simples, mais quand la requête est plus grande et beaucoup de méthodes s'appliquent sur le modèle d'autres gemmes (comme l'arbre de fermeture) - c'est encore une condition supplémentaire à la requête sql sommaire .. ok, merci beaucoup match! – dmitryck
C'est bizarre et confus, je vais certainement enquêter là-dessus quand j'ai un projet de rails sur lequel travailler. – meta