Ruby on rails AASM:验证哪个对象正在向前移动状态
我正在使用来自的AASM 在我的示例中,我有一个空手道道场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
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