Ruby on rails 坎坎能力触发,即使不调用它

Ruby on rails 坎坎能力触发,即使不调用它,ruby-on-rails,cancan,Ruby On Rails,Cancan,我正在使用cancan并检查授权用户进入索引页面。然而,一个能力触发了一个不可能的假阳性。以下是我在邮件索引中的内容: 以及引发问题的能力: cannot :read, Message do |resource| !company.active? && company.last_state_change_at && resource.created_at > company.last_state_change_at end 但是,这没有任何意义,因为我

我正在使用cancan并检查授权用户进入索引页面。然而,一个能力触发了一个不可能的假阳性。以下是我在邮件索引中的内容:

以及引发问题的能力:

cannot :read, Message do |resource|
  !company.active? && company.last_state_change_at && resource.created_at > company.last_state_change_at
end

但是,这没有任何意义,因为我并没有要求cancan验证:read,而是:index。当我注释掉那个能力块时,一切正常。我做错了什么?

:index
:read

  • &-

实际上,索引是read、read映射到索引和显示的子集,只是为了让其他人明白。这很有意义……但是,既然我们没有传递对象,它不应该跳过该块吗?
cannot :read, Message do |resource|
  !company.active? && company.last_state_change_at && resource.created_at > company.last_state_change_at
end