2012-07-29 65 views
0

我修改了我的設計表,用戶,有一個清除列。此列是表示用戶權限(讀取,讀取/寫入,完全控制)的數字(1-3)。與我正在閱讀的所有示例不同,我的 Clearance(示例中的角色)不是具有關係的獨立表,而是Devise表(User)中的自己的列。它的默認值是1康康和設計不工作

我ability.rb看起來是這樣的:

class Ability 
include CanCan::Ability 

    def initialize(user) 
    user ||= User.new # guest user (not logged in) 
    if user.clearance.equal?("2") 
     can :create, Post 
     can :manage, Post, :user_id => user.id 
    else 
     can :read, :all 
    end 
    end 

end 

我寫這關我見過的其他例子(我真的很新的Rails,但是想不請求幫助,除非絕對必要),意圖使用許可值爲2的用戶可以創建帖子並僅管理帖子。我還包括了,因爲我還沒有爲1和3編寫代碼,所有其他清除數字都可以讀取所有內容。

然而,Cancan認爲,我的用戶(確認通關等級2)屬於「其他」規定,因此我只能閱讀帖子。我得到一個你沒有權限訪問此頁面的消息,如果我嘗試做一個新的。 我迷路了。幫幫我?

回答

1

可能這是間隙列是整數嗎?在這種情況下,你應該寫user.clearance == 2而不是你寫的。

+0

就是這樣。謝啦。就像我說的,我是新的。但我在學習。一旦Stack讓我看,我會盡快檢查你的答案。 – 2012-07-29 19:35:45