在数组中获取哈希/对象的最小属性

时间:2014-07-04 12:08:57

标签: ruby ruby-on-rails-4

我为两种方法创建了以下语法,但无法将它们组合在一起。此外,我希望有一个更短的方式来写这个,因为它不是真正的精益:

@e = @c_entries.find_all{|i| i.order_no.between?(1,5)}

给我一​​个所有对象的数组,order_no介于1和5之间!!

@f = @c_entries.all(:select => :order_no).collect(&:order_no).min

创建一个所有order_no的数组,并给我最小值!

我现在要做的是在order_no介于1和5之间的所有对象中获得最小order_no。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果@c_entries包含应用程序中特定模型的集合,则可以利用ActiveRecord的查询界面:

@c_entries.where(order_no: 1..5).select(:order_no).min

还有其他各种缩小查询范围的方法:http://guides.rubyonrails.org/active_record_querying.html#conditions