Rails: find_by_contents avec des conditions; Aide à la syntaxe s'il vous plaît
-
29-10-2019 - |
Question
Cherche à limiter une découverte en fonction des conditions dans un Rails 2.0.2.
Trouver une déclaration:
@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ])
Besoin d'ajouter une condition pour limiter la recherche
:conditions=>["archived = '0'"]
Bien que cela ne fonctionne pas
@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ], :conditions=>["archived = '0'"])
Quelqu'un sait ce que devrait être la syntaxe?
La solution 2
Avait beaucoup de temps avec l'ajout d'une condition à Ferret Find_By, j'ai donc ajouté une commande post pour filtrer si elle est archivée. Si vous pensez encore à une meilleure façon, faites-le moi savoir. Merci.
@employees = Employee.find_by_contents(params[:keywords].to_s,
:include => [ :categories, :revisions, :approvals,
:archives, :related_documents ])
@employees = @employees.find_all {|p| !p.archived}
Autres conseils
Si vous transmettez des conditions un tableau, je pense que cela doit être pour une condition paramétrée. Essayez soit / les deux suivantes:
@employees = Employee.find_by_contents(params[:keywords].to_s,
:include => [ :categories, :revisions, :approvals,
:archives, :related_documents ],
:conditions=> "archived = '0'")
ou
@employees = Employee.find_by_contents(params[:keywords].to_s,
:include => [ :categories, :revisions, :approvals,
:archives, :related_documents ],
:conditions=>["archived = ?",'0'])
Premièrement, quelle erreur avez-vous?
Et essayez ceci
@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ], :conditions=>["employees.archived = ?", false])
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow