用will_paginate或Kaminari可以與範圍和CanCanCan分頁。 How to do pagination with cancan?用CanCan塊分頁
但是,這隻解釋瞭如果你的CanCan能力使用哈希如何做到這一點。如果你使用一個塊,這將不起作用。我理解這一點,因爲哈希轉換爲SQL語句。我似乎無法想象用block語句來做這件事的方法。
例如:
can :read, Shipment do |shipment|
user.client_ids.include? shipment.client_id
end
用戶只能看貨,如果客戶在他們的客戶名單。
@shipments = Shipment.ransack(params[:q]).result.uniq.paginate(page: params[:page]).select { |shipment| can? :show, shipment }
一種方法來做到這一點,並返回您的記錄數組。但will_paginate需要分頁對象。
<%= will_paginate @shipments %>
will_paginate將barf全部。也許這會在Kaminari工作?
謝謝!