使用rolify时,如何让所有用户具有特定角色?我尝试过以下但没有帮助:
User.with_role :admin
我收到以下错误:
NoMethodError: undefined method `with_role' for #<Class:0x0000000743f9c0>
无法找到任何方法来做到这一点。
您可以将with_role方法与User类一起使用,以查找在3.1.0版中具有角色的所有用户。
User.with_role :admin
我会问这个用户的角色
admins = Role.find_by_name('admin').users
with_role方法用于特定用户实例,而不是所有用户的类级别。如果你想实现你必须做这样的事情:
#not 100% on this code, haven't tested it, but you get the idea.
User < ActiveRecord::Base
def self.with_role(role)
my_role = Role.find_by_name(role)
where(:role => my_role)
end
end
您是否曾在模型中提到过resourcify以便放置角色
class User < ActiveRecord::Base
resourcify
end
有了这个,你可以使用with_role和find_roles类方法。
如果你需要一个额外的“在哪里”
@courriers = User.where.not(latitude: nil, longitude:nil ).with_role :Courrier
如果您需要使用联接,请尝试以下方法:
User.with_role(:admin).joins(:other_table).(other_table:{some_field: true})