我有一个用户模型和一个管理模型。我使用CanCan并为两者进行设计。我使用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):我认为用户::权限来自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发布于 2014-05-03 18:49:28
我重新安装了我所有的宝石: rails_admin,CanCan和Devise。起作用了!非常奇怪的错误。
发布于 2014-04-30 21:17:03
我建议您将CanCan更新为CanCanCan。这是一种保存得更好的坎坎人。
发布于 2014-05-05 21:33:01
添加CanCan后,您可能忘记运行bundle安装
https://stackoverflow.com/questions/23324741
复制相似问题