2011-02-04 4 views
1

Rails 2.0.2에서 조건을 기반으로 찾기를 제한하려고합니다.레일 : 조건이있는 find_by_contents; syntax help please

찾기 문 :

:conditions=>["archived = '0'"] 

을 찾아이

@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ], :conditions=>["archived = '0'"]) 

누구나 구문이 있어야 할 무엇인지 작동하지 않지만

@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ]) 

필요는 조건을 제한하는 추가?

+0

그럼 예외는? 어떤 오류가 있습니까? – fl00r

+0

'archived' 필드의 유형은 무엇입니까? 정말로'스트립'? 또는 '불리언'? – fl00r

+0

오류가 없습니다. 조건문을 무시했습니다. 부울 – Jeffrey

답변

0

이 find_by 색출하는 조건을 추가로 꽤 시간을 보내고 있었하려고, 그래서 그것을 보관 된 경우 필터에 POST 명령을 추가했다. 더 나은 방법을 생각한다면 나에게 알려주세요. 감사.

@employees = Employee.find_by_contents(params[:keywords].to_s, 
       :include => [ :categories, :revisions, :approvals, 
          :archives, :related_documents ]) 
@employees = @employees.find_all {|p| !p.archived} 
+0

AR 만 사용할 수 있기 때문에 나쁜 해결책입니다. – fl00r

0

조건을 배열에 전달하면 매개 변수가있는 조건이 필요하다고 생각합니다. 다음의 모두/중 하나를 시도해보십시오

@employees = Employee.find_by_contents(params[:keywords].to_s, 
        :include => [ :categories, :revisions, :approvals, 
           :archives, :related_documents ], 
        :conditions=> "archived = '0'") 

또는 첫째

@employees = Employee.find_by_contents(params[:keywords].to_s,       
        :include => [ :categories, :revisions, :approvals, 
           :archives, :related_documents ], 
        :conditions=>["archived = ?",'0']) 
+0

둘 중 누구도 결과를 제한하지 못했습니다. – Jeffrey

0

, 당신은 어떤 오류가 있습니까?

그리고이

@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ], :conditions=>["employees.archived = ?", false]) 
+0

오류가 없습니다. 조건문을 무시한 것입니다. – Jeffrey

+0

업데이트를 참조하십시오. ': conditions => [ "employees.archived =?", false]' – fl00r