Rails: find_by_contents con condizioni;Guida di sintassi per favore.
-
29-10-2019 - |
Domanda
Guardando a limitare una scoperta basata su condizioni in una rotaia 2.0.2.
Trova dichiarazione:
@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ])
.
Hai bisogno di aggiungere una condizione per limitare Trova
:conditions=>["archived = '0'"]
.
Anche se questo non funziona
@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ], :conditions=>["archived = '0'"])
.
Qualcuno sa cosa dovrebbe essere la sintassi?
Soluzione 2
Stava avendo abbastanza tempo con l'aggiunta di una condizione a Ferret find_by, quindi ho aggiunto un comando post da filtrare se è archiviato.Se pensi ancora un modo migliore, fammi sapere.Grazie.
@employees = Employee.find_by_contents(params[:keywords].to_s,
:include => [ :categories, :revisions, :approvals,
:archives, :related_documents ])
@employees = @employees.find_all {|p| !p.archived}
. Altri suggerimenti
Se si passano condizioni, un array, penso che sia necessario essere per una condizione parametrizzata.Prova / entrambi i seguenti:
@employees = Employee.find_by_contents(params[:keywords].to_s,
:include => [ :categories, :revisions, :approvals,
:archives, :related_documents ],
:conditions=> "archived = '0'")
.
o
@employees = Employee.find_by_contents(params[:keywords].to_s,
:include => [ :categories, :revisions, :approvals,
:archives, :related_documents ],
:conditions=>["archived = ?",'0'])
. In primo luogo, quale errore hai?
E prova questo
@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ], :conditions=>["employees.archived = ?", false])
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow