【发布时间】:2015-01-12 07:10:50
【问题描述】:
我是 rails 新手。我正在使用 rolify gem 添加用户角色。 当我尝试从 rails 控制台添加角色时,我遇到了这个问题。有人遇到过这个问题吗?
u = User.first
u.add_role(:admin).save!
错误列表 ===
ActiveRecord::RecordInvalid: Validation failed: Resource type is not included in the list.
Rolify 迁移文件 ============
class RolifyCreateRoles < ActiveRecord::Migration
def change
create_table(:roles) do |t|
t.string :name
t.references :resource, :polymorphic => true
t.timestamps
end
create_table(:users_roles, :id => false) do |t|
t.references :user
t.references :role
end
add_index(:roles, :name)
add_index(:roles, [ :name, :resource_type, :resource_id ])
add_index(:users_roles, [ :user_id, :role_id ])
end
end`
我已按照从此处安装 rolify 的文档 == https://github.com/RolifyCommunity/rolify
【问题讨论】:
-
你有没有在启动 rails 控制台后运行 rake db:migration?
-
你能把你的模型放在这里吗?
-
class User :add_default_role_to_user #resourcify # 包括默认设计模块。其他可用的有: # :confirmable, :lockable, :timeoutable 和 :omniauthable 设计 :database_authenticable, :registerable, :recoverable, :rememberable, :trackable, :validatable has_and_belongs_to_many :roles, :join_table => :users_roles #after_save :add_default_role_to_user def role ?(role) end def add_default_role_to_user current_user = User.find_by_id self.id #current_user.add_role :normal_user end end
-
类角色 :users_roles belongs_to :resource, :polymorphic => true 验证 :resource_type, :inclusion => { :in => Rolify.resource_types } 范围结束
-
这是两个模型。
标签: ruby-on-rails ruby activerecord rolify