CanCan无法获得用户

时间:2014-05-05 01:43:33

标签: ruby-on-rails ruby

我遇到了康康的一些问题,我不知道自己做错了什么。

在我的/ rails_admin.rb

config.authorize_with :cancan

在我的models / ability.rb

class Ability
  include CanCan::Ability

  def initialize(user)
    # Define abilities for the passed in user here. For example:
      user ||= User.new # guest user (not logged in)
      if user.admin?
        can :manage, :all
      else
        can :read, :all
      end
end

我有管理员吗?提供真值或假值并对其进行测试的方法。

问题是我的Ability类没有用户初始化。如果我将binding.pry放在def initialize(用户)下,我得到nil win,我就叫用户。我错过了什么?

1 个答案:

答案 0 :(得分:0)

你在哪里打电话授权! “current_user”字段/方法是否存在或是否也存在?

CanCan希望您定义'current_user'方法。

许多用于身份验证的流行宝石,例如Devise,都会自动为您提供此功能。

如果您编写了自己的登录脚本,则需要提供一个名为“current_user”的帮助器或控制器方法,该方法返回当前登录的用户。

编辑:参考有关CanCan期望的更多细节

GitHub: cancan: Changing Defaults