2016-08-27 8 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:あなたは整数でLIKE演算子を使用することはできません

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).)

。クエリを編集します。 このようなもの:

"rating = 5" 
+0

Thx you!できます。この "rating LIKE 5"を "rating = 5"に変更しました。 –

+0

このようなコメントや_Cool!_を書かないでください。これで問題が解決した場合は、回答を受け入れたものとしてマークしてください。ハッピーコーディング! –

+0

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

関連する問題