Ruby on rails 用于rails查询的ActiveRecord

Ruby on rails 用于rails查询的ActiveRecord,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我试图在rails中的ActiveRecord中进行以下查询 SELECT * FROM test_run WHERE build = '$build' AND suite='$suite'AND (result = 'fail' OR result = 'error') AND test_name NOT IN(SELECT test_name FROM test_run WHERE result = 'pass' AND build = '$build')GROUP

我试图在rails中的ActiveRecord中进行以下查询

SELECT * FROM test_run WHERE build = '$build' AND suite='$suite'AND (result = 'fail' OR     result = 'error') 
    AND test_name NOT IN(SELECT test_name FROM test_run WHERE result = 'pass' AND   build  = '$build')GROUP BY test_name";
第一部分很简单,我不知道如何做子查询

scope :never_passed, lambda { |b| where(:build => b, :status => 'fail').where(??)
我需要做些什么才能让这个子查询像上面的sql一样工作


谢谢

谢谢Arel,您可以执行以下子查询:

TestRun.where(:test_name => TestRun.where('result != ? && build != ?','pass','somevalue').select('test_name')).to_sql
将输出以下SQL:

SELECT `test_runs`.* FROM `test_runs` WHERE `test_runs`.`test_name` IN ('test1','test2')

看看这个。这应该可以帮你省去一些麻烦: