2011-07-07 6 views
0

에 대한 구문을 알아낼 수 없습니다 :내가이 쿼리를 실행하기 위해 노력하고있어이 AR 쿼리

site
Result.where('link = #{site}').present? 

은 문자열입니다. 그러나 위의 코드의 문제는 작은 따옴표로 인해 site이 보간되지 않는다는 것입니다. 내가

Result.where("link = #{site}").present? 

을하려고하면

나는 구문 오류가 발생합니다.

어떻게 작성할 수 있습니까?

답변

0

다음 날 해킹 당할 것입니다. 심각한 SQL injection 문제가 있습니다.

Result.where(:link => site) 

아니면 평등이 아닌 다른 뭔가를해야 할 경우 다음이 구문은 더 :

은 당신이해야 할 일은 이것이다

Result.where('link <> ?', site) 

당신은 here 자세한 내용을보실 수 있습니다. 내 기억이 제공하는 경우

+0

더 나은. Facepalm 순간 :) – d11wtq

-1

나는 당신이 따옴표를 두 배로 수 있다고 생각 : 내가 방금 말한 것보다

Result.where('"link = #{site}"').present? 
관련 문제