0

我正在尝试构建一个包含测验的学习应用程序。测验由几个步骤组成。

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文档并且有点明白了,但是我的大脑已经炸了,可以使用一些指导。

提前致谢。

4

0 回答 0