Trilhos:find_by_contents com condições;ajuda de sintaxe por favor
-
29-10-2019 - |
Pergunta
Procurando limitar uma descoberta com base nas condições do Rails 2.0.2.
Encontrar declaração:
@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ])
Precisa adicionar uma condição para limitar a localização
:conditions=>["archived = '0'"]
Embora isso não funcione
@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ], :conditions=>["archived = '0'"])
Alguém sabe qual deve ser a sintaxe?
Solução 2
Estava demorando bastante para adicionar uma condição ao ferret find_by, então adicionei um comando post para filtrar se ele estava arquivado.Se você pensar em uma maneira melhor ainda, me avise.Obrigado.
@employees = Employee.find_by_contents(params[:keywords].to_s,
:include => [ :categories, :revisions, :approvals,
:archives, :related_documents ])
@employees = @employees.find_all {|p| !p.archived}
Outras dicas
Se você passar condições para um array, acho que precisa ser para uma condição parametrizada.Tente um ou ambos os seguintes:
@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'])
Em primeiro lugar, que erro você tem?
E tente isso
@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ], :conditions=>["employees.archived = ?", false])
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow