我想我已經走了,並且迷惑了Cancan的力量。CanCan與Rails Association
我在這裏問了一個更長的問題 - Rails has_many :through, null belongs_to, multiple belongs_to and deletion of belongs_to?。但根據其中一位成員的建議,我簡化了我的問題,我認爲這是我最終的問題。
簡而言之,User
在Network
中有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 :through
Users
和Events
之間的關聯?由於技術上User
只通過Role
Event
連接Network
,我可以將它留給CanCan來控制訪問,或者我需要一個關聯。有沒有像這樣的方法:
def events
... # info for grabbing all events user has access to?
end
或者這也是不必要的?
那麼用戶和事件之間沒有正式的關聯?這是可以接受的/好的鐵軌練習? – dewyze
如果您執行像用戶has_many這樣的正常關聯:events?並限制CanCan上的關係?這會對你有用嗎?還是你需要更具體的東西? –