我正在尝试构建一个有测验的学习应用程序。测验由几个步骤组成。
我正在使用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
文档并且得到了它,但是我的大脑已经被炒了,可以使用一些指导。
提前致谢。