Comment puis-je Rechercher des enregistrements dans ma base de données sur une condition ne correspond pas ? J’ai cela maintenant, mais est il une fantaisie rails-parler façon de le faire ?
Merci
Comment puis-je Rechercher des enregistrements dans ma base de données sur une condition ne correspond pas ? J’ai cela maintenant, mais est il une fantaisie rails-parler façon de le faire ?
Merci
Dans Les Rails 4.x (Voir http://edgeguides.rubyonrails.org/active_record_querying.html#not-conditions)
GroupUser.where.not(user_id: me)
Dans Rails 3.x
GroupUser.where(GroupUser.arel_table[:user_id].not_eq(me))
Pour raccourcir la longueur, vous pouvez stocker GroupUser.arel_table
dans une variable ou en cas d'utilisation à l'intérieur du modèle GroupUser
lui-même par exemple, en scope
, vous pouvez utiliser arel_table[:user_id]
au lieu de GroupUser.arel_table[:user_id]
Rails 4.0 syntaxe de crédit à @jbearden réponse
La seule façon vous pouvez obtenir de plus sophistiqué est avec MetaWhere.
MetaWhere a une nouvelle cousine qui s'appelle Squeel qui permet au code comme ceci:
GroupUser.where{user_id != me}
Il va sans dire, que si c'est le seul refactoriser vous allez faire, il n'est pas utile d'utiliser un bijou et je voudrais simplement coller avec ce que vous avez. Squeel est utile dans les situations où vous avez beaucoup de requêtes complexes en interaction avec code Ruby.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.