【发布时间】:2017-01-05 19:02:23
【问题描述】:
我有一个 DirectoryController,并且 - 故意 - 没有 UsersController。当我创建管理控件时,用户控制器无疑会被添加,并且会有完全不同的范围和目的。
当我在目录控制器中调用 policy_scoped 时,我想使用 DirectoryPolicy 中的范围,而不是 UserPolicy(尚不存在)。我想以verify_policy_scoped 认可的方式来做这件事,这意味着DirectoryPolicy::Scope.new(current_user, User).resolve 的明显解决方法不仅有点长,而且实际上也不起作用。 (这似乎是一个错误)这似乎是一个明显的疏忽,我确信在某个地方有什么东西可以让这个工作,我只是不知道是什么。
如何在 Pundit 中执行此操作?
【问题讨论】:
-
策略与模型耦合。因此,您通常为每个模型创建一个策略类。在你的情况下,现在而不是以后创建一个
UserPolicy类是有意义的。
标签: ruby-on-rails pundit