2010-07-07 6 views
0

이봐, 나는 길다는 약간의 조건을 발견하고 좀 더 길게 만들고 싶다.레일 - 3 조건으로 찾기?

지금까지

:conditions => ["name LIKE ? OR description LIKE ?", "%#{params[:search_keyword]}%", 
     "%#{params[:search_keyword]}%"] 

는 속성 경우에 대한 모델을 찾고 있어요 : 이름이나 : 설명 텍스트 상자에서 PARAM 같다. 이제 추가 된 항목이 최신 항목인지 확인하기 위해 추가하고 싶습니다. 난 이미 @yearstime가 @yearstime = Date.today + 내가 결합하고 싶습니다 지금

에서 1 년 현재 날짜에서 모델에 그래서 기본적으로 모든 일을 365.days있다

:conditions => ["start_date between ? and ? ", Date.today, @yearstime ] 

이 두 조건 모두 구문을 잘 모르겠습니다. 나는 그것을 모두 모으려고 노력했다.

:conditions => ["name LIKE ? OR description LIKE ? AND start_date between ? and ?", 
"%#{params[:search_keyword]}%", "%#{params[:search_keyword]}%", Date.today, @yearstime ] 

그러나 여전히 날짜 매개 변수를 계산하지 않습니다 ... 어떤 생각을 잘못하고있는 걸까요?

답변

1

아마 사업자 문제의 순서 인 것 같습니다. AND 운영자가 OR

기준보다 더 높은 우선 순위를 가지고

:conditions => ["(name LIKE ? OR description LIKE ?) AND (start_date between ? and ?)", 
"%#{params[:search_keyword]}%", "%#{params[:search_keyword]}%", Date.today, @yearstime ] 

보십시오 :

0

은 시작일은 날짜, 또는 DATE_TIME입니다. 한 쪽에서 다른 쪽으로 캐스팅 문제가 될 수 있습니다.