2016-08-27 3 views
1

평가를하려고 할 때 내 Rails 프로젝트에서이 오류가 발생합니다.PG :: UndefinedFunction : ERROR LIKE 연산자

오류 :

PG::UndefinedFunction: ERROR: operator does not exist: integer ~~ integer LINE 1: ...dbacks" WHERE "feedbacks"."user_id" = $1 AND (rating LIKE 5)^HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. : SELECT COUNT(*) FROM "feedbacks" WHERE "feedbacks"."user_id" = $1 AND (rating LIKE 5)

컨트롤러 코드 :

unless @user.feedbacks.count == 0 
    @rating = ((@user.feedbacks.where("rating LIKE 5").count*5 + @user.feedbacks.where("rating LIKE 4").count*4 + 
    @user.feedbacks.where("rating LIKE 3").count*3 + 
    @user.feedbacks.where("rating LIKE 2").count*2 
[email protected]("rating LIKE 1").count).to_f/@user.feedbacks.count).round(2) 
else 
    @rating = 0 
end 

누군가가 제발 도와 드릴까요?

답변

0

The PostgreSQL documentation는 :

The LIKE expression returns true if the string matches the supplied pattern. (As expected, the NOT LIKE expression returns false if LIKE returns true, and vice versa. An equivalent expression is NOT (string LIKE pattern).)

당신은 정수로 LIKE 연산자를 사용할 수 없습니다. 쿼리를 편집하십시오. 다음과 같음 :

"rating = 5" 
+0

Thx you! 그것은 작동합니다. 이 "rating 5"를 "rating = 5"로 변경했습니다. –

+0

이 글 같은 댓글이나 _Cool! _을 쓰지 마십시오. 이 방법으로 문제가 해결되면 답변을 수락 한 것으로 표시하십시오. 해피 코딩! –

+0

Да я знаю) Просто сайт не хотел сразу ставить отметку и просил подождать несколько минут с момента написания решения) –

관련 문제