Cancan 能力触发,即使没有调用它
Cancan ability triggering even though not calling it
我正在使用 cancan 并检查授权用户转到索引页面。然而,一个能力正在触发一个不能误报。这是我的消息#index:
def index
authorize! :index, Message
@messages = current_company.messages.most_recent.paginate(:page => params[:page]).includes([:user, :customer])
end
以及导致问题的技能:
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
见
- https://github.com/ryanb/cancan/issues/302#comment_863142&-
- CanCan difference between :read and [:index, :show]?
我正在使用 cancan 并检查授权用户转到索引页面。然而,一个能力正在触发一个不能误报。这是我的消息#index:
def index
authorize! :index, Message
@messages = current_company.messages.most_recent.paginate(:page => params[:page]).includes([:user, :customer])
end
以及导致问题的技能:
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
见
- https://github.com/ryanb/cancan/issues/302#comment_863142&-
- CanCan difference between :read and [:index, :show]?