Rails范围限制在哪里之前

时间:2013-03-18 22:54:11

标签: ruby-on-rails

我想在预先形成where查询之前能够限制我的结果。我正在尝试做一个实验,我会查看50个响应的随机样本,然后想要计算回答是的用户数。如果我response.limit(50).where(:chosen_answer => 'yes').count我得到50,因为它预先形成了对整个查询的限制。

有没有办法将它分成两个单独的查询?

1 个答案:

答案 0 :(得分:0)

您可以将其作为单个查询进行,但使用嵌套查询:

# get 50
inner_query = response.select('id').limit(50).to_sql

# then filter within those 50
results = response.joins("INNER JOIN #{inner_query} x on x.id = responses.id").where(...).count