2015-04-24 64 views
0

我在我的導軌應用程序中使用了cancancan驗證機制。我只希望那些擁有自己帖子和評論的用戶可以被編輯和刪除,而管理員可以管理所有的東西。我的管理能力工作正常,但其他人無法正常工作。這裏是我的ability.rb文件帶導軌的cancancan能力4.0

class Ability 
include CanCan::Ability 

def initialize(user) 
user ||= User.new # guest user 

if user.admin? 
    can :manage, :all 

else 
    can :read, :all 
    can :create, Topic 
    can :update, Topic do |topic| 
    topic.try(:user) == user 
    end 
    can :delete, Topic do |topic| 
    topic.try(:user) == user 
    end 
    can :delete, Comment do |comment| 
    comment.try(:user) == user 
    end 
# can :manage, Comment, :task => { :user_id => user.id } 
    can :update, Comment do |comment| 
    comment.try(:user) == user 

    end 
    end 
end 

末 我應該怎麼才能正常工作,它做的。其正確的主題,但不工作的意見

這contrller

load_and_authorize_resource :topic 

回答

0

在我的主題行如果是工作的主題必須有什麼不對您的意見模型。評論表是否具有存儲評論作者的user_id列或其他方式來檢查其所有權?可能是comment.try(:user)返回nil,然後它沒有給用戶正確的權限。