Ruby / 专家 -> user.owner_of?

Ruby / Pundit -> user.owner_of?

我在专家文档中看到了下面的内容,想知道这是否是某些 ruby 或专家魔法的一部分,基于给定模型中存在的 user_id。 或者如果这只是他们用来表达观点的东西 https://github.com/varvet/pundit

在我看来,这只是您必须自己实现的用户功能的使用示例。

例如:

class User < ApplicationRecord
   ...

   def owner_of?(resource)
      self.id == resource.user.id
   end

   ...
end

由于用户 class 中的枚举,第一个条件 user.admin? 可用。 Rails 提供动态方法来验证特定用户的角色

class User < ApplicationRecord
   ...
   enum role: [ 
      :admin,
      :moderator,
      :editor
   ]
   ...
end

这使得方法在用户对象上可用:

user.admin?
user.moderator?
user.editor?