【发布时间】:2013-07-29 10:16:43
【问题描述】:
我有一个使用状态机模式的 ruby 应用程序。用户提交申请,并且在获得批准和审查后,这些申请将对其他用户可见。
该应用还使用 ActiveAdmin 允许管理员将应用从“草稿”状态转移到“已批准”状态,并最终转移到“成功发布”状态或“退休”状态。
我的问题是我不知道如何赋予管理员在所有州执行操作的特殊权限。例如,我希望管理员能够在任何状态下编辑应用程序,即使用户一旦获得批准就无法对其进行编辑。我有一个默认为 false 的“可编辑”方法,但当我想允许用户编辑应用程序时,我偶尔会设置为 true。
def editable?
true
end
我想也许可以创建一个名为“admin_editable”的类似方法?并在所有状态下将其设置为 true。但这似乎是一个 hack。
有最佳实践吗?我应该一起废弃状态机吗?或者,我如何获得允许管理员编辑项目而不管其状态如何?
【问题讨论】:
标签: ruby-on-rails activeadmin state-machine