我正在使用RubyonRails2.3.8,我有一个从其他两个集合构建的集合,如下所示:

@coll1 = Model1.all
@coll2 = Model2.all

@coll = @coll1 << @coll2

现在,我想按照created_at属性按子代顺序对该集合进行排序。所以,我做了以下工作:
@sorted_coll = @coll.sort {|a,b| b.created_at <=> a.created_at}

我有个例外:
undefined method `created_at' for #<Array:0x5c1d440>

即使这些模型存在。
有人能帮我吗?

最佳答案

将另一个数组作为另一个元素推入@coll1数组时,有两个选项:
展平结果数组:

@coll.flatten!

或者最好使用+方法:
@coll = @coll1 + @coll2

对于排序,您应该使用sort_by
@sorted_coll = @coll.sort_by { |obj| obj.created_at }

07-26 09:36