我正在尝试将一些json返回到调用操作。我要传递的一个参数是一个通过循环遍历集合构建的数组数组:
render :json => {
:rows => @classrooms.each do |classroom|
[classroom.name, classroom.students.count]
end
}
但是,这会设置:整个集合的行,而不是我想要的行:
<[>教室,学生],[课堂,学生],[课堂,学生]]
有没有办法循环整个集合并在一个块中返回一个数组?
答案 0 :(得分:4)
Enumerable#map是正确的工具。
render :json => {
:rows => @classrooms.map {|c| [c.name, c.students.count]}
}
答案 1 :(得分:0)
另一种方法...... each_with_object 方法:
render :json => {
:rows => @classrooms.each_with_object([]) do |classroom, a|
a << [classroom.name, classroom.students.count]
end
}