Ruby on rails - 管理员应如何与状态机交互



我有一个使用状态机模式的 ruby 应用程序。 用户提交申请,经过批准和审查后,其他用户可以看到这些申请。

该应用程序还使用 ActiveAdmin 允许管理员将应用程序从"草稿"状态移动到"已批准"状态,并最终移动到"成功发布"状态或"已停用"状态。

我的问题是我无法弄清楚如何赋予管理员在所有状态下执行操作的特殊权限。 例如,我希望管理员能够在任何状态下编辑应用程序,即使用户在获得批准后无法编辑它。 我有一个"可编辑"方法,默认情况下为 false,但当我想允许用户编辑应用程序时,我偶尔会设置为 true。

def editable?
  true
end

我想也许可以创建一个名为"admin_editable?"的类似方法,并在所有状态下将其设置为 true。 但这似乎是一个黑客。

是否有最佳实践? 我应该一起报废状态机吗? 或者,如何允许管理员编辑项目,无论其状态如何?

像康康这样的宝石会在这里帮助你吗?

最新更新