针对特定控制器的特定操作跳过登录 Rails

Skip Login For a Particular Action of a Particular Controller Rails

我在 rails 应用程序中使用 Devise 和 CanCan。我的问题是我想为特定控制器 (BasketsController) public 执行特定操作 (basket_public_url)。我知道如何跳过控制器进行授权。有办法吗?

https://github.com/ryanb/cancan/wiki/Ensure-Authorization#conditionally-check-authorization

如果您使用的是 CanCan 1.5 及更高版本,则可以使用 skip_authorize_resourceskip_load_and_authorize_resource

class BasketController < ApplicationController
  skip_authorize_resource :only => :basket_public_url
end

引用link:

https://github.com/ryanb/cancan/wiki/authorizing-controller-actions

如果你想跳过登录,这意味着你想绕过身份验证和授权。

class BasketsController < ApplicationController
  skip_before_action :authenticate_user!, :only => :basket_public_url
  skip_authorize_resource :only => :basket_public_url

end