通过编辑操作更改 AASM 状态



我正在使用 AASM 来管理用户模型中的状态。

我想通过编辑操作更改状态。

为此,我正在使用表单中User.aasm_states_for_select的方法以填充状态的选择输入。当我点击按钮提交时,所有更改都会保存,包括州名。但是不调用该状态的 AASM 事件,它是发生是因为只有字段状态已更改和事件方法没有被召唤。

有人能解决我的问题吗?

不幸的是,唯一的解决方案是从状态名称中查找事件并直接应用它。类似的东西

STATE_MAPPING = {
  'state_name' => :event_name
}
#...
def update
  user.public_send(state_event) if state_event
  user.update permitted_attributes
  #...
end
# ...
def state_event
  state = params.require(:user).permit(:state)[:state]
  STATE_MAPPING[state]
end
def permitted_attributes
  @params.require(:user).permit #attributes without state
end

太多的喧嚣tbh,但据我所知,没有其他可用的解决方案

相关内容

  • 没有找到相关文章

最新更新