【发布时间】:2015-06-11 20:27:18
【问题描述】:
我需要一个数组,它给我@idea.id 按@idea.created_at.month 排序
例如:
[[1,2,3], [4,5,6], [7,8,9], [], [], [], [], [], [], [], [], []]
其中 id 1、2 和 3 具有 @idea.created_at.month = 1 等到 month = 12。
@ideas_by_month = Array.new(12){Array.new}
@ideas.each do |idea|
month = idea.created_at.month
@ideas_by_month[month-1] << idea.id
end
举例来说,我需要@ideas_by_month[0] 给我ID 1、2、3。
目前这会将所有想法添加到一个插槽[],并且没有正确排序。如何更改它以使我的数组看起来像示例?
【问题讨论】:
-
不正确是什么意思?你能说明你得到了什么,什么是错的吗?
-
它给了我 [Idea.all] 没有 12 个插槽,没有分类到 12 个插槽。数据来自 5 月和 6 月,因此应该至少有 2 个空位。
-
@RustamA.Gasanov 您是否看到此(已编辑)数组无法正常工作的任何其他原因?它仍然提供与我上面描述的相同的输出。
-
请停止更改您的问题。您最初拥有
@ideas_by_month = Array.new(12,[])。 @steenslag 然后告诉你应该是Array.new(12) {[]}。他并不是要你在你的问题中做出那个更正。通过这样做,您使他的回答毫无意义(除非读者通读您的编辑)。理解?您应该进行的唯一编辑是澄清,并在适当的情况下明确这是一个编辑(例如,“编辑:数组......”)。
标签: ruby-on-rails arrays ruby multidimensional-array