我正在制作一个类似测验的应用,其中包含多个问题,其中包含多个答案。每个答案都有 points 和 id_of_next_question 属性 - 根据答案,用户应该使用不同的问题。
这样做的简单方法就是这样做:
< @ question.answers.each做|回答| %GT;
<结束%>
但是这有缺点,用户会在路径中看到问题的ID,我不知道如何使用link_to收集answer.points。
制作ie ... / play.html视图以显示第一个问题的正确方法是什么,并根据答案,计算points = points + answer.points并使用答案呈现下一个问题而不更改“... / play.html”路径?
答案 0 :(得分:0)
实现这一目标的一种方法是让你的链接就像一个创建一个新的question_result(一个保存用户选择的模型)的表单,
例如
< @ question.answers.each做|回答| %GT; < = link_to answer.content,question_results_path(:question_id => @ question.id,:answer_id => answer.id),:method => :post%> <结束%>
然后在question_results_controller中,您可以创建一个使用answer_id计算点数的创建操作,并将用户重定向回play.html路径,并将下一个问题ID作为参数,以便用户可以继续测验。您可以将点总数保存为cookie(尽管更合适的方法是使用用户模型,并将每个用户的结果保存在数据库中)