如何管理CanCan

时间:2013-05-05 01:09:13

标签: ruby-on-rails ruby-on-rails-3 cancan

这是我的能力.rb

class Ability

 include CanCan::Ability

  def initialize(user)
  user ||= User.new # guest user (not logged in)
  if user.admin?
    can :manage, :all
  else
    can :read, :all
  end
  end
  end

和索引

  <% if can? :update, @post %>
      <%= link_to t('.edit', :default => t("helpers.links.edit")),
                  edit_post_path(post), :class => 'btn btn-mini' %>
      <% end %> 

但我发现错误

帖子中的NoMethodError #index undefined method`admin?'对于#“

我应该在哪里定义管理员或其他角色?如何在登录时选择管理员或其他角色?

1 个答案:

答案 0 :(得分:0)

您必须在用户模型中创建管理员方法

def admin?
  type == 'Admin'
end

如果你有Admin模型:

class Admin < User
end