Ruby on rails ruby aasm gem:事件名称更改,但允许的方法仍然要求使用旧的事件名称
我一直在使用aasm gem来定义一个对象。它附带了几个用于事件的公共方法。例如: 对于对象a_机器,事件启动会将对象传输到新状态。我可以做以下查询:一台机器。可以启动吗?。但是,我将名称boot_up改为wake_up。现在,以下方法引发异常:Ruby on rails ruby aasm gem:事件名称更改,但允许的方法仍然要求使用旧的事件名称,ruby-on-rails,ruby,aasm,Ruby On Rails,Ruby,Aasm,我一直在使用aasm gem来定义一个对象。它附带了几个用于事件的公共方法。例如: 对于对象a_机器,事件启动会将对象传输到新状态。我可以做以下查询:一台机器。可以启动吗?。但是,我将名称boot_up改为wake_up。现在,以下方法引发异常: a_machine.aasm.events(permitted: true) # undefined method: may_boot_up? 我想问一下“允许”是如何实现的,因为它仍然有一个与过期事件名称关联的过期公共方法 其他事情都很好。有人知
a_machine.aasm.events(permitted: true)
# undefined method: may_boot_up?
我想问一下“允许”是如何实现的,因为它仍然有一个与过期事件名称关联的过期公共方法
其他事情都很好。有人知道为什么吗?或者,你能给我进一步的指示如何继续吗?
谢谢,
编辑:我有更多线索:
在我将事件的名称:boot_up更改为:wake_up之后,实际发生的情况是:boot_up符号仍然保留在事件数组中,并将一个新符号:wake_up添加到该数组中。a_machine.aasm.events.map&:name返回事件数组
更新:现在问题是:如何从AASM::Core::event中删除事件,因为:boot\u up是作为事件添加的,通过更改名称,我意外地只添加了一个新事件:wake\u up。一旦更改了状态机事件,您将需要重新启动rails控制台/服务器。您重新启动了rails吗控制台,因为你改变了状态机?LOL@marcbest,你喜欢把你的评论作为一个答案,这样我就把它标记为已解决??:我花了很多精力去调查LOL