使用Pundit for Rails 5授权使用两个不同的用户表(用户和管理员)

时间:2017-01-23 01:16:59

标签: ruby-on-rails authorization pundit

如果在博客应用程序中使用Pundit进行授权,使用用户和管理员的不同用户表设计身份验证,如何在以下位置实施邮政策略:

  • 用户可以更新自己的帖子
  • 管理员可以更新任何人的帖子

在我在网上看过的例子中,似乎没有处理多个用户表的规定,例如Admin和User。

拥有特定于各自表的UserPolicy和AdminPolicy非常简单,但PostPolicy如何实现以下功能:

%USERPROFILE%

1 个答案:

答案 0 :(得分:1)

因为它们位于不同的表中,我假设用户和管理员也在不同的类中,您可以使用is_a?进行检查。

def update?
  @user == resource.user || @user.is_a?(Admin)
end