2012-01-15 43 views
0

我希望允許管理員使用自定義字段創建帖子,但仍希望他們使用與普通用戶使用的相同的創建操作。定義cancan中的無用功能?

我認爲要做到這一點:

class Ability 
    include CanCan::Ability 

    def initialize(user) 
     if user.admin? 
      can :specialize, Post 
     end 
    end 
end 

然後在我的控制器:

def create 
    @post = Post.new 
    if can? :specialize, @post 
     do_fancy_things_here 
    end 
end 

奇怪的是,do_fancy_things_here如何,始終會的,如果用戶是管理員還是沒有運行。

這很奇怪。我偏離康康手冊的唯一方法是:專門化並不實際映射到控制器操作。這很重要嗎?

+0

我很好奇,如果你改變你的if語句:'如果能? :specialize,Post',你還會得到同樣的東西嗎? – Max 2012-01-27 05:52:49

+0

是啊同樣的事情= / – 2012-01-28 05:20:26

回答