我有一个名为Review
的表格,我想检索所有没有:stage
等于"approve"
的评论对象。
这样的事情:Review.where(:stage not_equal_to "approve")
我怎么能这样做呢?我在哪里可以找到我可以在.where
内拨打的电话列表,例如小于,大于等等。
答案 0 :(得分:7)
使用纯字符串条件查询,这些查询记录在http://guides.rubyonrails.org/active_record_querying.html#pure-string-conditions的Rails指南中。
Review.where("stage != ?", "approve")
如果你在字符串条件中使用用户值,这可能容易受到SQL查询的影响,所以使用上面的数组语法,它会在清理后用每个传递的参数替换问号。
答案 1 :(得分:4)
您只需使用
即可Review.where("stage <> 'approve'")
此字符串将直接在where子句的SQL中使用。要非常小心不要Review.where("stage <> #{var}")
因为它易受sql注入攻击,而是使用Review.where("stage <> ?", var)