我正在尝试根据用户的授权获取搜索结果...
问问题
763 次
2 回答
7
执行 Ransack 搜索后,只需使用 CanCan 过滤结果。这是我的应用列出提供者的示例。
如果您的能力不使用方块,请使用accessible_by
:
def index
@search = Provider.sorted.search(params[:q])
@providers = @search.result.accessible_by(current_ability)
end
如果您的能力正在使用块,则不能使用accessible_by
:
def index
@search = Provider.sorted.search(params[:q])
@providers = @search.result.select{|p| can? :read, p}
end
有关更多详细信息和示例,请查看 cancan wiki 上的Fetching Records
希望有帮助
于 2013-05-29T18:42:25.583 回答
1
As of 1.4 the index action will load the collection resource using accessible_by
所以现在我们拥有所有可访问的记录index
。因此以下将起作用
def ProvidersController
before_filter :authenticate_user!
load_and_authorize_resource
def index
@q = @providers.search(params[:q]).page(params[:page])
@providers = @q.result
end
end
于 2015-10-05T09:30:07.633 回答