내 앱에서 GET을 통해 필터링 할 수 있습니다. 그래서>보다 큰 | <|보다 작음 = 연산자를 검색어로 사용합니다.
column
(필터)value
(5)operator
(=,>, <)
:
www.mysite.com/rating=5
www.mysite.com/rating>5
www.mysite.com/rating<5
는 I 쉽게로 params[:filter]
을 분할 할 내 질문 후 Laptop
모델을 사용하고 기본 순서를 정한 경우 결과가 설정된 경우 필자는 필터링합니다. value
동적으로 유사한 operator
를 추가 할 수있는 방법이 있다면
if params[:filter] != "all"
.
.
case operator
when "="
laptops = laptops.where("laptops.rating = ?", value)
when ">"
laptops = laptops.where("laptops.rating > ?", value)
when "<"
laptops = laptops.where("laptops.rating < ?", value)
end
end
가 궁금하네요. 특히
>=
을 추가하면
<=
코드가 반복됩니다.
5 번!
내가 시도 :
laptops.where("laptops.rating ? ?", operator, value)
그러나 이것은 자연적으로 오류
Syntax Error: near "laptops.rating '>' '6'"
내 코드를 더 건조 할 수있는 방법 어떤 아이디어의 결과 문자열로 연산자를 추가?
사용 PostgreSQL을
감사합니다. –