2013-03-27 49 views
1

我正試圖在我的Rails應用程序中使用Cancan進行身份驗證,並且遇到了麻煩。我在我的用戶表中有兩列,名爲admin和owner,它們都是布爾型的。我的ability.rb文件檢查這是否爲真,然後提供適當的權限。看起來,沒有登錄的用戶的權限和作爲管理員的用戶的權限。但是,擁有者的許可似乎並不奏效。我無法查看使用此權限的視圖中的鏈接。如何使用Cancan修復權限錯誤?

我已經把load_authorize_resource放在了我的PlacesController的頂部。

def initialize(user) 
    user ||= User.new # Guest user 
    if user.admin? 
     can :manage, :all 
    else 
     can :read, :all 
     if user.owner? 
      can :create, Place 
     end 
    end 

    # can :read, :all 
end 

我能夠認爲這是管理員,但不是作爲一個老闆......但我應該能夠作爲所有者。

<% if can? :create, @place %> 
    <%= link_to 'New place', new_place_path %> 
<% end %> 

回答

0

你應該寫,

<% if can? :create, Place %> 
    <%= link_to 'New place', new_place_path %> 
<% end %> 

在創建一流水平,而不是對象的作品。