我有一個簡單的Rails 4應用程序,只有兩個空的模型User和Job。我在嚴格模式下使用Rolify gem來給用戶角色。Rolify Gem嚴格模式/作用域角色
即(佔documentation嚴格模式)
class User < ActiveRecord::Base
rolify strict: true
end
基本上我想與角色工程師用戶能夠擁有的作業類一定的權限,但對於具體的工作並不一定權限。
所以我給用戶1作爲工程師作爲Job類和Job類的一個實例。而用戶2僅獲得Job類工程師的角色。就像文檔一樣。
job = Job.create() # Job class instance
user1.add_role(:engineer, Job) # Job class
user1.add_role(:engineer, job) # Job class instance
user2.add_role(:engineer, Job) # Job class
這工作正常,我可以說這樣的事情;
user1.has_role? :engineer, Job #=> true
user1.has_role? :engineer, job #=> true
user2.has_role? :engineer, Job #=> true
user2.has_role? :engineer, job #=> false This is the result I expect.
但是當我嘗試做一個一流水平rolify調用
(佔documentation即職業等級)
User.with_role(:engineer, job)
# => [ list of User instances that have a scoped role of "engineer" to a job instance ]
它返回都 user1和user2。當我只希望user1,因爲它是特別綁定到該實例。嚴格模式不是這樣工作還是我做錯了什麼?
同樣在這裏。似乎對我來說是一個合法的錯誤。 –