不是空的范围导致PSQL Rails应用程序中的错误

时间:2012-04-17 20:18:29

标签: sql ruby-on-rails ruby ruby-on-rails-3 postgresql

我有一个在heroku上运行的rails应用程序,由于某种原因,以下范围导致很多麻烦并在PSQL中引发错误('rating'是一个整数):

scope :rated, where("posts.rating <>''")

很自然地,我尝试了下面列出的所有内容;这些不会导致任何错误,但会显示空评级值STILL的帖子。

scope :rated, where("posts.rating IS NOT ?", nil)
scope :rated, where("posts.rating > 0")
scope :rated, where("posts.rating IS NOT NULL")

提前致谢!

2 个答案:

答案 0 :(得分:1)

如何组合它们?

scope :rated, where("posts.rating IS NOT NULL AND posts.rating > 0")

答案 1 :(得分:1)

上面的第三个选项应该适用于标准PSQL,但您也可以尝试:

posts.rating <> NULL or
posts.rating NOTNULL