简体   繁体   English

Rails admin 和 cancancan,nil:NilClass 的未定义方法“new”

[英]Rails admin and cancancan, undefined method `new' for nil:NilClass

I've followed the guides in the cancancan wiki on how to use cancancan to authenticate admins for rails_admin.我遵循了 cancancan wiki 中关于如何使用 cancancan 对 rails_admin 的管理员进行身份验证的指南。 It works so far, but when I try to access the admin dashboard with an account that has admin privileges, I run into the error到目前为止它有效,但是当我尝试使用具有管理员权限的帐户访问管理仪表板时,我遇到了错误

NoMethodError in RailsAdmin::MainController#dashboard RailsAdmin::MainController#dashboard 中的 NoMethodError

undefined method 'new' for nil:NilClass未定义的方法 'new' 为 nil:NilClass

https://imgur.com/bKE5mv6 https://imgur.com/bKE5mv6

What's going on and how can I fix this?这是怎么回事,我该如何解决?


ability.rb能力.rb

 if user.admin?
    can :manage, :all
    can :access, :rails_admin # this line
    can :dashboard, :all # and this one
  elsif user.userrole?
    can :read, Item
    can :manage, User, :user_id=>user.id
  else
    can :read, Item
  end

rails_admin.rb rails_admin.rb

config.authorize_with :cancancan2

According to the rails_admin wiki根据rails_admin wiki


Specifics:规格:

rails 5.1.5导轨 5.1.5

cancancan 2.1.3坎坎坎 2.1.3

rails_admin 1.3.0 rails_admin 1.3.0

devise 4.4.3设计 4.4.3

rails_admin.rb rails_admin.rb

  ### Popular gems integration

  ## == Devise ==
  config.authenticate_with do
    warden.authenticate! scope: :user
  end
  config.current_user_method(&:current_user)

  ## == CancanCan ==
  ## 「cancan」 ng
  ## 「cancancan」 ok
  config.authorize_with :cancancan

I could solve it by reinstalling the admin_rails gem, In the terminal我可以通过在终端中重新安装 admin_rails gem 来解决它

$ rails g rails_admin:install $ rails g rails_admin:install

then I gave him overwrite YES然后我给他覆盖 YES

I tried to fix it but could not, so I went for Pundit gem and It worked fine with rails admin, They also have a gem with rails admin implementation which you can use.我试图修复它但无法修复,所以我选择了 Pundit gem,它与 rails admin 一起工作得很好,他们还有一个带有 rails admin 实现的 gem,你可以使用它。 Kudos点赞

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

相关问题 rails admin 未定义方法`new' for nil:NilClass 错误 - rails admin undefined method `new' for nil:NilClass error Ruby on Rails undefined方法`admin?' 为零:NilClass - Ruby on Rails undefined method `admin?' for nil:NilClass undefined方法`[]'为nil:NilClass for Rails模型为new - undefined method `[]' for nil:NilClass for Rails model on new 未定义的方法`admin?'为零:NilClass - undefined method `admin?' for nil:NilClass 未定义的方法“ admin?” 对于nil:NilClass - Undefined method `admin?' for nil:NilClass 限制用户在博客中创建新文章会给出“未定义的方法“ is_admin?” for nil:NilClass”在Rails应用程序中的ruby中 - restricting users to create new article in blog gives “ undefined method `is_admin?' for nil:NilClass” in ruby on rails app rails_admin:nil:NilClass的未定义方法“ year” - rails_admin: undefined method `year' for nil:NilClass Rails 3教程10.4.2:NoMethodError未定义方法`admin?' 为零:NilClass - Rails 3 Tutorial 10.4.2 : NoMethodError undefined method `admin?' for nil:NilClass Rails管理员NoMethodError:未定义的方法“允许!” 对于nil:导出时为NilClass - Rails admin NoMethodError: undefined method `permit!' for nil:NilClass while Export Rails_admin 未定义的方法 `associations' 为 nil:NilClass - Rails_admin undefined method `associations' for nil:NilClass
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM