Ruby on rails AASM:验证哪个对象正在向前移动状态

Ruby on rails AASM:验证哪个对象正在向前移动状态,ruby-on-rails,validation,acts-as-state-machine,Ruby On Rails,Validation,Acts As State Machine,我正在使用来自的AASM 在我的示例中,我有一个空手道道场rails站点。在该网站上,教师可以管理他们指导的课程,并将学生转移到下一个逻辑地带 我的学生模型使用AASM进行皮带推进,其定义如下: class Student < ActiveRecord::Base acts_as_state_machine :initial => :White_Belt state :White_Belt state :Yellow_Belt state :Green_Belt

我正在使用来自的AASM

在我的示例中,我有一个空手道道场rails站点。在该网站上,教师可以管理他们指导的课程,并将学生转移到下一个逻辑地带

我的学生模型使用AASM进行皮带推进,其定义如下:

class Student < ActiveRecord::Base
  acts_as_state_machine :initial => :White_Belt
  state :White_Belt
  state :Yellow_Belt
  state :Green_Belt
  state :Purple_Belt
  state :Brown_Belt
  state :Black_Belt

  event :Graduate do
    transitions :from => :White_Belt, :to => :Yellow_Belt
    ...
    transitions :from => :Brown_Belt, :to => :Black_Belt
  end
end

…这将是理想的。

我认为,只要代码正确,就不需要这种强制执行。您可以自己在代码中强制执行此操作

您可以编写一个函数,例如TeacherPromoteTudent,然后在毕业事件上编写一些注释,说明不直接调用它,而是调用Teacherpromote


此外,在方法和符号上,首选不带首字母大写的驼峰字母

我有适当的意见,但意见不能保证任何事情。我更愿意提供更具体一点的东西。谢谢你的建议。
class Teacher < ActiveRecord::Base
   def Promote_Student(pupil)
      pupil.Graduate!
   end
end
event :Gradate(teacher_id) do
   ...
end