ruby-on-rails - 无法使用 CanCan 从 rails_admin 管理模型

我有一个用户模型和一个管理员模型。我同时使用 CanCan 和 Devise。我使用 rails_admin,但是当我想从我的 rails_admin 中列出或编辑用户时,我遇到了一个神秘的错误。

Processing by RailsAdmin::MainController#index as HTML
Parameters: {"model_name"=>"user"}
Admin Load (0.4ms)  SELECT `admins`.* FROM `admins` WHERE `admins`.`id` = 1 ORDER BY `admins`.`id` ASC LIMIT 1
Completed 500 Internal Server Error in 9ms

NameError (uninitialized constant User::Permission):

我认为 User::Permission 来自 CanCan 但我不确定。

当我尝试编辑属于某个用户的许多其他模型时,我遇到了几乎相同的错误。但是错误改变了:

ActionView::Template::Error (uninitialized constant User::Permission):

我的能力模型

class Ability
    include CanCan::Ability

    def initialize(resource)

        # Define guest user role
        if !resource
            resource = User.new
            resource.role = "guest"
        end

        # Authorizations for admins
        if resource.class == Admin 
            can :dashboard
            can :access, :rails_admin
            can :manage, User # I delete all models for the topic
            can :manage, Piggybak.config.manage_classes.map(&:constantize)
            Piggybak.config.extra_abilities.each do |extra_ability|
                can extra_ability[:abilities], extra_ability[:class_name].constantize
            end
        end

        # Authorizations for users
        if resource.class == User
            case resource.role
                # Guest
                when "guest"
                    can :create, User
                # Freemium
                when "member"
                    can :manage, User

            end
        end
    end
end

最佳答案

我重新安装了我所有的 gem:rails_admin、CanCan 和 Devise。 有用 ! 非常奇怪的错误...

https://stackoverflow.com/questions/23324741/

相关文章:

c++-cli - '^' 与 Cpp 中的类名的含义

angularjs - ng-grid cellTemplate 问题与单元格的背景颜色

build - 不安全代码需要指定 `unsafe` 命令行选项 Monodevelop 4.0.1

google-maps - 嵌入式谷歌地图与 API V3

nunit - Nunit 中整个运行的设置和拆卸?

sql-server - Visual Studio 旗舰版 2013 : Server Explo

clojure - 为什么 Clojure rationals 优先使用 Java `BigInte

scala - 对重载定义的不明确引用,来自 Java 库

eclipse - org.eclipse.xtext.resource.FileNotFoundO

smartsheet-api - 工作表数据的预期语义是什么?应该返回空值吗?