我有一个使用状态机模式的ruby应用程序。用户提交申请,经批准和审查后,其他用户将可以看到这些申请。
该应用程序还使用ActiveAdmin允许管理员将应用程序从“草稿”状态移动到“已批准”状态,最终到“成功发布”状态或“已退出”状态。
我的问题是我无法弄清楚如何赋予管理员在所有状态下执行操作的特殊权限。例如,我希望管理员能够在任何状态下编辑应用程序,即使用户在批准后也无法编辑它。我有一个'editable'方法,默认是false,但是当我想允许用户编辑应用程序时,我偶尔会设置为true。
def editable?
true
end
我想过可能会创建一个名为“admin_editable”的类似方法。并在所有州设置为真。但它似乎是一个黑客。
有最好的做法吗?我应该一起废弃状态机吗?或者,如何允许管理员编辑项目而不管其状态如何?