加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – CanCan – “user”参数为nil – Rails 4

发布时间:2020-12-17 03:56:00 所属栏目:百科 来源:网络整理
导读:我正在使用Rails 4.0.1和 ruby 2.1.1.我正在尝试将cancan与rails_admin集成.我的application_controller.rb看起来像这样 helper_method :current_userprivatedef current_user @current_user ||= User.find_by(email: session[:user_id]) if session[:user_i
我正在使用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帮助程序方法在应用程序的其余部分正常工作.我的能力.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异常.我哪里错了?

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

更新:我用cancancan 1.8替换了cancan.还是行不通

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读