我一直在努力让康康舞一整天都在工作。我已经使用不同的教程重新开始了几次,但我不断收到相同的错误。
这很简单,我有一个用户帐户(使用 Devise 创建),它可以有一个角色,管理员或用户。这是能力等级:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.role? :admin
can :manage, :all
end
end
end
在配置文件控制器中,我有一行load_and_authorize_resource
,用户包含的类ROLES = %w[admin user]
。要去http://localhost:3000/profiles/
给我错误
wrong number of arguments (2 for 1)
在app/models/ability.rb:6:in
初始化'`
使用替代方法user.admin?
给出
undefined method `admin?' for #<User:0x5b34c10>
谷歌搜索上面的错误会得到很多结果,所以我不是唯一遇到这个问题的人,但没有一个解决方案对我有用。
是的,我已将角色列添加到用户表
class AddRoleToUsers < ActiveRecord::Migration
def change
add_column :users, :role, :string
end
end
添加 Gem,运行 bundle install 并重新启动服务器。