我正在使用 gem Rolify 3.2.0 来管理用户角色。
当我像这样添加一个非范围角色时,一切正常。使用“导轨控制台”:
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
请帮忙 :)