Disons que nous avons ce qui suit: Pourrions-nous avoir une requête SQL inversée de celle-ci? strong> p> Que je suis À la recherche de, devrait probablement ressembler à ceci: p>
6 Réponses :
avec une syntaxe différente, oui. Exemple:
Pas précisément ce que je cherchais mais toujours une très bonne réponse.
Avez-vous trouvé une autre façon de faire cela? Peut-être une meilleure syntaxe? La réponse a-t-elle fonctionné pour vous?
En fait, je pense que ce n'est même pas possible depuis ce que je demande réellement est d'inverser et d'activerecord :: objet de relation qui pourrait ou non avoir plusieurs jointures et inclut trop de choses qui compliqueraient trop la matière (laquelle devrait-on inverser et qui ne devrait-il pas être inverser et qui non?) . Je pense que je vais laisser cela ouvert jusqu'à ce qu'une réponse arrive.
Ce que je fais quand je cherche des enregistrements avec une condition "non vraie" (par exemple, faux ou nil) est la suivante:
Post.where(["(hidden IS NULL) OR (hidden = ?)", false])
in rails 4 Il y a dans rails 3 Vous pouvez utiliser Gem Squeel . Il donne de nombreuses fonctionnalités utiles. Et avec vous, vous pouvez écrire: p> non code> suffixe à cet effet:
Enfin, nous avons la méthode veuillez cocher cette COMMITE Référence pour plus de détails. P> P> invert_where code> avec des rails 7.
À partir des rails 7, il y a une nouvelle invert_where méthode. P>
Selon les documents, il: P>
Vous permet d'inverser une liste entière où la clause au lieu d'appliquer manuellement des conditions. P> blockQuote>
xxx pré> Soyez prudent parce que cela inverse toutes les conditions avant invert_where appel. p> blockQuote>
xxx pré> sources: strong> p>
- invert_where de Rails officiels API Docs. li>
- Lien vers le PR . LI>
- Article Bigbinaire Blog sur Invert_where Méthode . li> ul> h2>
Il, je viens de googler une solution pour un inverse où et vous avez répondu à cette solution hier. Une autre raison de passer aux rails 7 :)
Hmm. Bad Upvote sur le commentaire
où (: caché => faux) code> par quelqu'un. Ce code pas i> générer le type de SQL L'OP recherche.