我正在尝试根据用户的授权获取搜索结果...
答案 0 :(得分:6)
执行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
有关更多详细信息和示例,请查看Fetching Records
上的cancan wiki希望有所帮助
答案 1 :(得分:1)
class NavigationFilter
{
[PropertyDeclaringType(typeof(Foo))]
[PropertyName("Bars")]
public static Expression<Func<Bar,bool>> OnlyReturnBarsWithSpecificSomeValue()
{
var someValue = SomeClass.GetAValue();
return b => b.SomeValue == someValue;
}
}
现在我们在DB::table('repositories')->delete();
$csv = Reader::createFromPath($path_to_file);
DB::table('repositories')->insert($csv->fetchAssoc(['last_name','first_name', 'matricule', 'username']));
flash()->success('Repository updated successfully');
return redirect('repositories');
行动中拥有所有可访问记录。因此,以下工作
As of 1.4 the index action will load the collection resource using accessible_by