Ruby on rails 使用CanCan授权资源,但不';我不希望所有的行动都是这样

Ruby on rails 使用CanCan授权资源,但不';我不希望所有的行动都是这样,ruby-on-rails,ruby-on-rails-4,devise,cancan,before-filter,Ruby On Rails,Ruby On Rails 4,Devise,Cancan,Before Filter,我在Rails 4中使用Desive和CanCan。两者都很好,但我不希望两者都对控制器的两个特定操作有效。因此,我为Desive做了以下工作: before_filter :authenticate_user!, except: [:check_in_list, :check_in] 这要求用户登录所有异常,但签入列表和签入操作除外。工作完全符合我的意图。问题是当我添加授权\u资源时: before_filter :authenticate_user!, except: [:check_in

我在Rails 4中使用Desive和CanCan。两者都很好,但我不希望两者都对控制器的两个特定操作有效。因此,我为Desive做了以下工作:

before_filter :authenticate_user!, except: [:check_in_list, :check_in]
这要求用户登录所有异常,但
签入列表和
签入操作除外。工作完全符合我的意图。问题是当我添加
授权\u资源时

before_filter :authenticate_user!, except: [:check_in_list, :check_in]
authorize_resource
skip_authorize_resource only: [:check_in_list, :check_in]

现在,如果我尝试转到
签入列表
签入
页面,它会重定向我登录。除了
授权资源
选项外,是否有类似于
的内容?

根据gem文档,您可以使用
跳过授权资源

before_filter :authenticate_user!, except: [:check_in_list, :check_in]
authorize_resource
skip_authorize_resource only: [:check_in_list, :check_in]

我试试看。。。我猜我只会使用
而不是
,除了:
。使用
似乎很奇怪,除了:
跳过授权资源
和不
授权资源
上的
选项外,对于您的情况,应使用“仅”。我已经更新了答案。确实有点奇怪,但这是他们的做法