2011-01-20 33 views
5

我正在更改Ability類中的一些自定義CanCan操作,以使用塊而不是僅使用散列,但現在他們已停止實際限制訪問。奇怪的是,內置的操作如:manage和:create等似乎仍然可以正常工作。CanCan自定義操作無法使用塊

這是一個例子:

OLD

# this one works 
can :share, Project, :user_id => user.id 

# this one doesn't work 
can :share, Project do |project| 
    project.users.exists?(user) 
end 

之前任何人都遇到了這個問題?

回答

1

我不能說你的不良行爲,但你可能不應該改變哈希來阻止,因爲這些哈希給你提取記錄的能力。 在CanCan wiki中仔細閱讀this article

+0

相信我,我不想使用塊,但它似乎是唯一的方法來做我的情況。我已經從項目和用戶之間的一對多關係轉變爲多對多關係,所以現在我需要檢查項目中的所有用戶,而不僅僅是一個。 – Matt 2011-01-20 02:47:03