即使没有调用它,Cancan能力也会触发

时间:2015-03-25 19:10:01

标签: ruby-on-rails cancan

我使用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。当我注释掉那个能力块时,一切正常。我做错了什么?

1 个答案:

答案 0 :(得分:2)