在rails应用程序中,我需要返回一个包含多个列的ActiveRecord集合,但只有一列必须是唯一的。默认范围不是唯一值。
默认范围
default_scope { order('executed_at DESC') }
当前查询没有唯一:条款。
Search.where(organization_id: @my_array_of_ids)
.executed_after(from_date_time)
.limit(100)
.pluck(:terms)
executed_after(from_date_time)也是一个范围。如何在不使用.uniq方法的情况下更改上述查询以返回唯一的术语?我希望这是一个单独的SQL语句。
答案 0 :(得分:0)
我也发现了这个:
Convert SQL query to Active Record query in Rails 4
注意Model.distinct(:column)
编辑:
我猜它是这样的,但我需要更多信息:
Search.distinct(:terms).select(:executed_at)
.where(organization_id: @my_array_of_ids)
.executed_after(from_date_time)
.limit(100)
.group(:executed_at)