在使用 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
我该如何调试呢?