2012-12-05 114 views
0

我想我已經走了,並且迷惑了Cancan的力量。CanCan與Rails Association

我在這裏問了一個更長的問題 - Rails has_many :through, null belongs_to, multiple belongs_to and deletion of belongs_to?。但根據其中一位成員的建議,我簡化了我的問題,我認爲這是我最終的問題。

簡而言之,UserNetwork中有Role。 A User也可以創建Events,但是,他們可以看到/編輯的Events都基於Role。如果User失去Role,他們將無法再訪問Event

此外,如果創建了Event除去User和/或Role,在Event仍將存在於Network,並給所有Users可見在他們的Role足夠高的權限(管理員,經理等) 。

我可以使用CanCan來確定User是否可以通過測試其Role來訪問Event。那部分工作正常。

但更多的概念,如果我使用慘慘同時控制訪問,爲Events控制器行動以及是否將Event甚至顯示在基於can :read來看,是有需要的軌道has_many :throughUsersEvents之間的關聯?由於技術上User只通過RoleEvent連接Network,我可以將它留給CanCan來控制訪問,或者我需要一個關聯。有沒有像這樣的方法:

def events 
    ... # info for grabbing all events user has access to? 
end 

或者這也是不必要的?

回答

1

你不需要使用的has_many:通過

看看:https://github.com/ryanb/cancan/wiki/defining-abilities

可以使用他們說什麼在維基我剛剛張貼分配的用戶和檢查權限不同的角色

+0

那麼用戶和事件之間沒有正式的關聯?這是可以接受的/好的鐵軌練習? – dewyze

+0

如果您執行像用戶has_many這樣的正常關聯:events?並限制CanCan上的關係?這會對你有用嗎?還是你需要更具體的東西? –