brakeman gem (Ruby on Rails 코드에서 발생할 수있는 보안 문제를 식별)과 함께 작업하고 있습니다. 조인, 그룹 및 선택을 사용하는 범위가 있으며 쿼리의 선택 부분을 업데이트해야합니다. 이 범위는 다음과 같습니다. 제품 모델에이 범위의 내용을 넣을 것입니다. 이제rails (QueryMethods)의 SQL select 쿼리에 날짜 매개 변수 전달
Product.joins('LEFT JOIN orders ON orders.product_id = products.id')
.group('products.id')
.select(
"SUM(CASE WHEN orders.order_at BETWEEN '#{start_date}' AND '#{end_date}'" \
" THEN orders.qty ELSE 0 END) as qty, products.*"
)
내가 그것은 나에게 내가 또한 그룹과 가진 몇 가지 다른 방법을 시도했지만 그것을 위해 일하지 않았다 ?
이 구문 오류를 제공이
Product.joins('LEFT JOIN orders ON orders.product_id = products.id')
.group('products.id')
.select(
"SUM(CASE WHEN orders.order_at BETWEEN ? AND ?" \
" THEN orders.qty ELSE 0 END) as qty, products.*",
'#{start_date}',
'#{end_date}'
)
같은 쿼리를 변경하려고하면 나를. 레일과 함께 Postgres SQL을 사용하고 있습니다. 4.1.8
나는 이것을 달성 할 수있는 방법이 있습니까? 미리 감사드립니다.
이
당신은?
구문을 사용하는 것이 맞다 오류
PG::SyntaxError: ERROR: syntax error at or near "?"
LINE 1: SELECT SUM(CASE WHEN orders.order_at BETWEEN ? AND ? AND ord
더 충분한 정보가 없습니다. 또한 [여기] (https://stackoverflow.com/questions/47531438/i-want-to-use-query-in-rails-just-like/47531725#47531725) 비슷한 무인 질문이 있습니다. –