如何强制执行权限的最佳方式——控制器还是约束?

我认为你需要一个守护方法来检查用户是否被允许执行特定操作,例如 can_upgrade_server?。

此外,一旦你实现了该方法,就可以使用 guardian.ensure_can_upgrade_server!,它会检查条件并在条件不满足时抛出异常,这正好符合你的需求。