在rails中的find(:all,:conditions => {})语句中使用大于0

时间:2011-04-04 12:43:32

标签: ruby-on-rails

我正在尝试(并且失败)使用rails中的条件构造一个find all语句以满足我的需要。我需要找到表中'in'值大于0的所有值(或者只是不为零)但是我遇到了麻烦,这就是我需要的东西:

@sales = Transaction.find(:all, :conditions => {:in => 'greater than 0'} )

有一种简单的方法吗?

谢谢,

汤姆

2 个答案:

答案 0 :(得分:2)

您可以使用Arel执行此操作,而无需访问SQL:

@sales = Transaction.where(Transaction.arel_table[:in].gt(0)).all

答案 1 :(得分:1)

试试这个

  @sales = Transaction.find(:all, :conditions => ['in > ?', 0] )

或使用

之类的条件
  :conditions => 'in > 0'