簡體   English   中英

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

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

我遵循了 cancancan wiki 中關於如何使用 cancancan 對 rails_admin 的管理員進行身份驗證的指南。 到目前為止它有效,但是當我嘗試使用具有管理員權限的帳戶訪問管理儀表板時,我遇到了錯誤

RailsAdmin::MainController#dashboard 中的 NoMethodError

未定義的方法 'new' 為 nil:NilClass

https://imgur.com/bKE5mv6

這是怎么回事,我該如何解決?


能力.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

config.authorize_with :cancancan2

根據rails_admin wiki


規格:

導軌 5.1.5

坎坎坎 2.1.3

rails_admin 1.3.0

設計 4.4.3

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

我可以通過在終端中重新安裝 admin_rails gem 來解決它

$ rails g rails_admin:install

然后我給他覆蓋 YES

我試圖修復它但無法修復,所以我選擇了 Pundit gem,它與 rails admin 一起工作得很好,他們還有一個帶有 rails admin 實現的 gem,你可以使用它。 點贊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM