CanCanCan對於某些人來說可能是一個明顯的問題,但是我發現很難將其包圍。對CanCanCan使用CanCanCan來隱藏/顯示內容 - 建議
我得到了一個有許多角色的應用程序(campus_rep,campus_manager,operations_manager,admin等)。他們都有權訪問「管理員」部分,但會根據角色查看不同的菜單選項。
例如:
- 管理員可以管理所有的客戶「
- 運營經理可以管理客戶,他們屬於
提取物ability.rb
if user.role == 'admin'
can :manage, JobApplication
elsif user.role == 'operations_manager'
can :manage, JobApplication, school_id: user.schools.map(&:id)
elsif ser.role == 'campus_rep'
# blah but nothing to do with JobApplication
end
學校我一直在想用if can? :manage, Customer
bu那麼即使'operations_managers'也不會通過它,這是有道理的。
建議如何擺脫類似的情況?
我試過if can? :manage, Customer.new(school: current_user.schools.first)
哪種有用但看起來不太好。
我雖然做了一些事情,比如將'admin'和'operations_managers'加入can :see, JobApplication
,然後進行如if can? :see, JobApplication
這樣的檢查。
建議什麼?有沒有更好的方法?希望有...
也高度此事
你知道像魔術的第二個問題,我有y'day。感謝你的回答。 –
嗯......我明白了,有些事情實際上會起作用...... –