0

我偶然发现了这个答案,它帮助我生成了一个我想要的唯一值列表,但是,我不想要所有的结果。有没有办法在select或其他方式中过滤结果来实现这一点?

我正在考虑类似这样的事情:

@results = MyModel.select("DISTINCT(columnForDistinction)", :myBoolean => false)

或者

@results = MyModel.select("DISTINCT(columnForDistinction)", :someString => stringImLookingFor)

目前,我无法过滤查询的结果,因此我正在遍历返回的数组,并且只列出将该布尔值设置为 false 的结果,如下所示:

<% @results.each do |result| %>
  <% if !result.myBoolean %>
    #do stuff here
  <% end %>
<% end %>

<% @results.each do |result| %>
  <% if result.someString == stringImLookingFor %>
    #do stuff here
  <% end %>
<% end %>

有没有更好的方法来做到这一点?

4

1 回答 1

1

ActiveRecord 查询方法是可链接的。您可以调用多个,它会在您使用结果时将它们全部构建到查询中。对于条件,您将使用where. 尝试类似:

@results = MyModel.select("DISTINCT(columnForDistinction)").where(:myBoolean => false)
于 2013-05-12T19:50:28.837 回答