0

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

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

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

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

提前致谢!

4

2 回答 2

1

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

posts.rating <> NULL or
posts.rating NOTNULL
于 2012-04-17T20:35:27.413 回答
1

把它们结合起来怎么样?

scope :rated, where("posts.rating IS NOT NULL AND posts.rating > 0")
于 2012-04-17T20:28:36.433 回答