如何遍历属于另一个用户的所有用户

时间:2016-08-21 19:30:12

标签: ruby-on-rails

我正在开展一个项目,允许教师为学生创建批量成绩。我已经为特定学生做标准等级创作工作正常。

教师(User)有许多属于他们的学生(User)。我想要实现的是当您点击“创建一批成绩”时,会将您带到第一个可以输入成绩的学生的create_grade_path,然后点击“创建”。这将带您到下一个学生的create_grade_path,依此类推,直到所有学生都创建了成绩。

一般来说,我的问题是什么是迭代它们的最佳方式,因为我没有遇到过这样的事情。我有一个变量@all_students,它是属于当前登录教师的所有学生的数组。我是否会创建此副本并从中删除记录,直到它为空?

非常感谢你,

1 个答案:

答案 0 :(得分:1)

首先考虑在batch_update路线中添加其他参数,例如create_grade_path。此参数将指示这是批处理还是单个创建操作。

如果这是批量请求,则在成功保存后,您需要重定向到另一个学生的成绩视图。你可以通过很多方式做到这一点。您可以从数据库中获取另一个没有成绩的学生,或者您可以使用会话来存储需要成绩的学生的ID。使用会话,您需要创建另一个将启动整个过程的操作。

def start_batch_create
  @all_students = Student.all # or other query
  sessions[:students_to_grade] = @all_students.map(&:id)
end

现在,在创建操作中,您可以访问此会话变量,删除一个学生并重定向为另一个学生创建成绩,除非会话变量中有一些ID。