Rails clause where sur deux tables
J'ai le modèle suivant dans l'application rails
category => company => store
Magasin dispose d'un belongs_to
la société et elle a un belongs_to
catégorie de la relation.
maintenant, je veux utiliser une méthode sur un objet de banque de récupérer tous les magasins dans la même catégorie.
Je voudrais avoir quelque chose comme ceci
@stores.nearbys(5).where("stores.company.category_id = xxx")
quelqu'un peut-il me donner une astuce sur ce
merci pour mettre en évidence le code!!!
OriginalL'auteur Martin | 2012-10-03
Vous devez vous connecter pour publier un commentaire.
Essayez les jointures où sur la table jointe:
EDIT:
Pour obtenir la catégorie de magasin, vous devrez d'abord le délégué de la catégorie de méthode à son entreprise:
Maintenant, il suffit d'appeler la méthode dans votre requête:
J'ai édité ma réponse - j'espère que c'est plus utile
merci. résolu mon problème avec simone blog. tout le meilleur de l'autriche
OriginalL'auteur Erez Rabih
where
prend en charge imbriquée de hachage.Peut-être que vous n'êtes pas à l'aide de Ruby 1.9? J'ai mis à jour pour utiliser l'ancienne syntaxe.
Désolé, il y a une erreur. J'ai oublié que
category_id
doit avoir une valeur, dans ce cas@category.id
(assurez-vous d'adapter le code)erez la réponse résolu mon problème, mais juste avec l'arrière-plan de votre blog à simonecarletti.com/blog/2009/12/inside-ruby-on-rails-delegate Merci! Et tout le meilleur de l'Autriche (Vienne)
Pouvez-vous ré-utiliser certains nommé étendues dans ces cas?
OriginalL'auteur Simone Carletti
vous pouvez essayer ce
pouvons-nous avoir une autre relation, si possible, comme dans les magasins belongs_to :catégorie :par => :société
OriginalL'auteur Aayush Khandelwal