Rails 3:检索所有具有不等于另一个值的特定值的对象



我有一个名为Review的表,我想检索所有:stage不等于"approve"的评审对象。

这样的东西:Review.where(:stage not_equal_to "approve")

我怎么能真正做到这一点?以及在哪里可以找到我可以在.where内进行的调用列表,例如小于、大于等。

使用纯字符串条件查询,这些查询在Rails Guideshttp://guides.rubyonrails.org/active_record_querying.html#pure-字符串条件。

Review.where("stage != ?", "approve")

如果在字符串条件中使用用户值,这可能会受到SQL查询的攻击,因此请使用如上所述的数组语法,该语法在清除后用每个传递的参数替换问号。

您可以简单地使用

Review.where("stage <> 'approve'")

此字符串将在SQL中的where子句中直接使用。非常小心不要使用Review.where("stage <> #{var}"),因为它容易受到sql注入的攻击,而是使用Review.where("stage <> ?", var)

相关内容

最新更新