从Rails中的数组中收集唯一的活动记录对象?

Den*_*nis 1 ruby ruby-on-rails ruby-on-rails-3

我有一个返回超过50k记录的查询结果.我做 :

@array.collect {|x| x.field_name1}.uniq, @array.collect {|x| x.field_name2}.uniq 
Run Code Online (Sandbox Code Playgroud)

..为视图中的多个选择创建过滤器.这需要一段时间.有什么方法可以在一个循环中收集所有独特元素以提高性能?谢谢

jdo*_*doe 10

用于选择唯一列值的纯Ruby/Rails方法(没有硬编码SQL)将是:

uniq_fields1 = Model.uniq.pluck(:field_1)
# issues: SELECT DISTINCT field_1 FROM "models"
Run Code Online (Sandbox Code Playgroud)