我正在使用Devise和CanCan開發Rails 3.2應用程序。CanCan無法在索引中篩選@products
我的用戶模型是用戶,我想限制對用戶創建的產品資源的訪問。相關的代碼片段:
應用程序/模型/ ability.rb
class Ability
include CanCan::Ability
def initialize(user)
if user
can :manage, Product, user_id: user.id
end
end
end
應用程序/控制器/ products_controller.rb
class ProductsController < ApplicationController
load_and_authorize_resource
..
end
的config/routes.rb中
...
devise_for :products
resources :products do
resources :sizes
end
...
一切正如預期的那樣工作:用戶不能看到,編輯等等,這些產品不是由他們創建的。但問題是,如果用戶訪問產品索引/ 所有產品是可見的。
我該怎麼做才能過濾索引頁中的相關產品?
我使用谷歌搜索,並試圖authorize! :index, Ability
在索引行動與can :index, Product, user_id: user.id
一起,但然後用戶根本無法在索引頁訪問。
任何幫助表示讚賞。
當然,你是非常正確的。這是深夜,在這裏。非常感謝。 – Galen 2013-05-09 21:25:17