【发布时间】:2012-10-29 07:56:52
【问题描述】:
我正在使用 gem Rolify 3.2.0 来管理用户角色。
当我像这样添加一个非范围角色时,一切正常。使用“rails 控制台”:
u = User.first
u.roles
=> []
u.add_role :admin
u = User.first
u.roles.first.name
=> "admin"
很好,但是当我尝试做同样的事情但角色范围为资源时,它不会持续存在。再次使用“rails 控制台”:
u = User.first
u.roles
=> []
u.add_role :admin, Agency.first
u.roles.first.name
=> "admin"
u.roles.first.resource_type
=> "Agency"
u.save!
u = User.first
u.roles
=> []
所以,本地用户一切正常,但是当我重新查询模型时,角色没有被持久化?!
我的角色模型直接来自 rolify 生成器:
class Role
include Mongoid::Document
has_and_belongs_to_many :users
belongs_to :resource, :polymorphic => true
field :name, :type => String
index({ :name => 1 }, { :unique => true })
index({
:name => 1,
:resource_type => 1,
:resource_id => 1
},
{ :unique => true})
scopify
end
请帮忙:)
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 roles