2012-11-09 36 views
0

我正在使用gem Rolify 3.2.0來管理用戶角色。Rolify不持久作用域角色

當我像這樣添加一個非作用域角色時,一切正常。使用「軌道控制檯」:

u = User.first 
u.roles 
=> [] 
u.add_role :admin 
u = User.first 
u.roles.first.name 
=> "admin" 

大,但是當我嘗試做同樣的事情,但與角色作用域的資源,它不存在。再次使用「軌道控制檯」:

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 

請幫助:)

回答

0

的問題是在模型中,有在名稱字段兩個唯一索引。我刪除了第一個索引,現在一切正常。我還向rolify repo發送了一個pull請求,以查看我們是否可以爲其他人修復此問題。