【发布时间】:2013-05-06 19:32:54
【问题描述】:
我偶然发现了this answer,它帮助我生成了一个我想要的唯一值列表,但是,我不想要所有结果。有什么方法可以过滤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 %>
有没有更好的方法来做到这一点?
【问题讨论】:
-
MyModel.select(:some_field).uniq应该生成=> SELECT DISTINCT some_field FROM my_model -
@Orlando 不会只返回那个字段吗?我想要每个字段,但只想要满足特定条件的结果。
-
@Orlando 那怎么能让我有额外的条件?
标签: ruby-on-rails activerecord filtering