我正在开展一个项目,允许教师为学生创建批量成绩。我已经为特定学生做标准等级创作工作正常。
教师(User
)有许多属于他们的学生(User
)。我想要实现的是当您点击“创建一批成绩”时,会将您带到第一个可以输入成绩的学生的create_grade_path
,然后点击“创建”。这将带您到下一个学生的create_grade_path
,依此类推,直到所有学生都创建了成绩。
一般来说,我的问题是什么是迭代它们的最佳方式,因为我没有遇到过这样的事情。我有一个变量@all_students
,它是属于当前登录教师的所有学生的数组。我是否会创建此副本并从中删除记录,直到它为空?
非常感谢你,
答案 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。