Je souhaite créer une requête SQL dans une application Rails qui ajoute une condition lorsqu'un menu déroulant est ajouté. Évidemment, je ne veux pas chercher avec une condition vide si le menu déroulant n'est pas sélectionné. Comment puis-je développer une condition dynamique dans une instruction SQL?ActiveRecord prend-il en charge les conditions dynamiques dans les instructions SQL?
exemple non testé:
Lorsque la liste déroulante n'est pas sélectionnée: Object.find ("billy": conditions => {})
Lorsque la liste déroulante est sélectionnée: Object.find ("billy": conditions => { "last_name => "johnson"})
Merci pour vos commentaires!
Remarque rapide, Ruby lui-même ne fait pas de SQL, vous vous posez des questions sur Rails, ActiveRecord en particulier :-) –
Si vous utilisez ActiveRecord, Object n'est pas un bon nom pour un modèle, car il est l'un des classes de base en Ruby. Si vous optez pour générique, essayez Model ou Thing. # 2 - Thing.find ("billy",: conditions => {etc ..}) ne fonctionne pas non plus. Si vous avez en quelque sorte mis en place Thing pour avoir une colonne ID avec la valeur "billy", alors vous pouvez dire Thing.find ("billy"), pas besoin de conditions.Si vous utilisez des conditions, vous voulez généralement Thing.find: d'abord,: conditions => {etc ..} ou Thing.find: all,: conditions => {etc ..}. Vous trouverez ci-dessous quelques bonnes réponses qui ne fonctionneront pas en raison de ce problème. – austinfromboston
@austinfromboston Je suis d'accord, mais j'ai le sentiment qu'il l'utilisait comme exemple, n'utilisant pas cette classe ... au moins, j'espère qu'il n'utilisera pas cette classe ... –