我在我的rails应用程序中使用Devise和CanCan。我的问题是,我想为特定控制器(BasketsController
)公开发起特定操作(basket_public_url
)。我知道如何跳过控制器进行授权。有没有办法解决?跳过登录为特定的控制器轨道的特定操作
https://github.com/ryanb/cancan/wiki/Ensure-Authorization#conditionally-check-authorization
我在我的rails应用程序中使用Devise和CanCan。我的问题是,我想为特定控制器(BasketsController
)公开发起特定操作(basket_public_url
)。我知道如何跳过控制器进行授权。有没有办法解决?跳过登录为特定的控制器轨道的特定操作
https://github.com/ryanb/cancan/wiki/Ensure-Authorization#conditionally-check-authorization
如果你想跳过登录,这意味着你要绕过身份验证和授权。
class BasketsController < ApplicationController
skip_before_action :authenticate_user!, :only => :basket_public_url
skip_authorize_resource :only => :basket_public_url
end
如果您使用的康康舞1.5及更高版本,可以使用skip_authorize_resource
或skip_load_and_authorize_resource
。
class BasketController < ApplicationController
skip_authorize_resource :only => :basket_public_url
end
参考链接:
https://github.com/ryanb/cancan/wiki/authorizing-controller-actions
不工作时,它会进入它实际上导致它调用user.admin方法..这将引发异常 –
您是否使用授权文件的能力!方法在控制器内某处。你可以在你授权的地方发布代码吗?你用什么代码来授权? –