0
self.students.includes(:events).each do |student|
row = []
row.push student.first_name
row.push student.last_name
row.push student.title
row.push student.id
csv << row
end
截至目前,使用行数组一次一行地将每个用户的数据输入到CSV文件中。之后,循环移动到下一个用户。在Ruby中按字母顺序排序CSV文件
但是,问题在于用户没有按字母顺序输入。我通常会使用下面的代码按字母顺序对数组进行排序。
row.sort_by! {|student| [student.last_name, student.firstname]}
但看到这将是无效的,因为只有一行将被排序在一次我正在寻找另一个解决方案。按字母顺序排列数据的另一种方法是什么?从我所看到的情况来看,我不可能在循环中对CSV文件进行排序,但我不确定如何在循环之外这样做。所以,如果您有任何建议,请分享。
'self.students.includes(:events)'的结果是什么。我期望一个Enumerable,那么你对_since的期待只会在一个时间点排序,这将是错误的。你可以尝试'self.students.includes(:events).sort_by {| student | [student.last_name,student.firstname]}。每个...' – knut
非常感谢,这个解决方案做到了! – Jalen929