我剛剛在rails上學習ruby,我有一個用戶角色表(Owner,Admin和User)。代碼中會有一些地方需要檢查用戶的角色並顯示不同的選項。有沒有人知道如何做到這一點,而不訴諸魔術數字或其他醜陋的方法?列舉類型或替代方法
在ASP.Net Web應用程序,我對我的工作已經看到了這一點,通過使用枚舉類型的實現:
public enum UserRole { Owner = 1, Admin = 2, User = 3 }
// ...
if (user.Role == UserRole.Admin)
// Show special admin options
數據庫中的每個不同的作用體現爲枚舉類型的值設置爲數據庫中該角色的ID。這似乎不是一個很好的解決方案,因爲它取決於可能會改變的數據庫知識。即使它是處理這種事情的正確方法,我也不知道如何在rails中使用枚舉類型。
我將不勝感激這件事。
此外,瑞恩·貝茨有一個名爲康康舞良好的授權寶石和他的網站一個很好的教程(http://railscasts.com/episodes/192 -authorization與 - 康康舞) – 2013-04-09 00:40:32