我正在尝试构建一个包含测验的学习应用程序。测验由几个步骤组成。
我aasm
用来跟踪用户在测验中的状态。有3种状态:
1.not started (Default state)
2.in progress
3.completed
我正在跟踪状态,因为当用户开始测验、注销然后返回时,他们将能够继续。
有 2 个事件转换:
start
&finish
我知道我在测验中调用这些来设置状态 - Quiz.start!
&Quiz.finish!
我可以告诉用户处于什么状态,如果他们正在进行的测验步骤有父母,那么他们正在进行中,如果他们正在进行的测验步骤没有孩子,那么他们已经完成。像这样的东西:
if quiz.parent
quiz.start!
else quiz.children == 0
quiz.finish!
end
我只想知道我把上面的逻辑放在哪里来设置状态?我不认为我把它放在我的控制器中。我必须把它放在测验课上吗?我是否使用其中包含上述逻辑的定义方法 set_state ?如果是这样,我该如何使用它?
我已经阅读了aasm
文档并且有点明白了,但是我的大脑已经炸了,可以使用一些指导。
提前致谢。