2011-12-29 2 views
1

여러 선택적 조건이있는 레일스 활성 레코드 쿼리를 작성하고 싶습니다.Rails 3 joined multiple 어디 조건이

예 :

내가 환자 탐색 양식을 가지고 해당 ID, 이름과 이메일 주소를 검색 할 수. 의사 코드는 다음과 같습니다.

where_sql = "" 
where_sql = {'name = ?", params[:name]} if params[:name] 
where_sql = {'id = ?", params[:id]} if params[:id] 
where_sql = {'email = ?", params[:email]} if params[:email] 

Patient.where(where_sql) 

SQL 인젝션에 대해 걱정하지 않고 어떻게 다음 쿼리를 작성합니까? 당신은 단지 동일한 조건을 사용하는 경우

+0

체크 http://stackoverflow.com/questions/6419472/creating-dynamic-queries-depending 수 있습니다 레일 분사 대책 가이드보기 -on-parameter-passed-in-rails-3/6421870 # 6421870 실마리 용 – Bohdan

답변

0

, 당신은 그것을 좋아 할 수 있습니다

또한
conditions = {} 
conditions[:name] = params[:name] if params[:name] 
conditions[:id] = params[:id] if params[:id] 
conditions[:email] = params[:email] if params[:email] 
Patient.where(conditions) 

는 좋은 searchlogic 보석에 봐.

+0

답장을 보내 주셔서 감사합니다. 그러나, 나는 동등한 조건에서만 그것을 사용하고 있지 않다. – TonyTakeshi