如何使用AASM设置状态?

时间:2018-06-15 15:59:55

标签: ruby-on-rails ruby aasm

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

我正在使用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文档并且得到了它,但是我的大脑已经被炒了,可以使用一些指导。

提前致谢。

0 个答案:

没有答案