0

在使用 JSONAPI::Resources 和 CanCanCan 的 Rails 应用程序中,我有一个Caption模型 ( has_one :video) 和一个Video模型 ( has_many :captions)。

我想允许客人仅访问属于已发布视频的字幕:can :read, Caption, video: { visible: true }

但是,这是行不通的。客人可以通过访问/captions路线访问所有字幕。如果我删除上述行,客人将无法访问任何标题并收到 401 Unauthorized 。

我们有一些以类似方式定义的能力,我只是无法弄清楚这种情况下的问题是什么。这个特定的能力定义似乎没有被忽视,而是被错误地解释了。这种变体还让我们来宾访问所有字幕:

can :read, Caption do | caption |
  false
end

我该如何调试呢?

4

1 回答 1

0

要调试您的问题,您可以查看cancancangem 文档的此页面: https ://github.com/CanCanCommunity/cancancan/blob/develop/docs/debugging.md

您还有byebug真正有用的宝石: https ://www.rubydoc.info/gems/byebug/11.1.3

于 2021-09-21T12:16:44.043 回答