繁体   English   中英

CanCan - “user”参数为nil - Rails 4

[英]CanCan - “user” parameter is nil - Rails 4

我正在使用Rails 4.0.1和ruby 2.1.1。 我正在尝试将cancan与rails_admin集成。 我的application_controller.rb看起来像这样

helper_method :current_user

private

def current_user
  @current_user ||= User.find_by(email: session[:user_id]) if session[:user_id]
end 

我的current_user帮助程序方法在应用程序的其余部分正常工作。 我的ability.rb看起来像这样

class Ablity
  include CanCan::Ability

   def initialize(user)
     if user
       can :access, :rails_admin
     end
   end
end

控制根本不在if条件内,这意味着“user”参数为“nil”。 当我尝试访问rails_admin时,我得到一个CanCan::AccessDenied异常。 我哪里错了?

编辑 :我没有使用设计进行身份验证

更新 :我已经取代cancancancancan版本1.8。 还是行不通

解决了。 config/initializers/rails_admin.rb我们必须将current_user_method指定为

config.current_user_method { current_user } # refers to the current_user helper method in my case

现在一切都很完美。 我很惊讶为什么在文档中没有指定这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM