0
Учитывая, что у меня есть роль, определенная как таковые:Получить ресурс для конкретной Rolify роли
User.first.add_role(:admin, Forum.first)
я могу определить, имеет ли пользователь роль администратора для любого форума с
User.first.has_role?(:admin, :any)
ли есть способ получить фактический ресурс, на который это указывает? Например, в этом случае я вернусь Forum.first
или, возможно, массив ресурсов, если у Пользователя было более одной роли :admin
.
Я решил проблему сейчас: 'Forum.find (User.first.roles.where (name:: admin) .map (&: resource_id))', но, вероятно, лучший способ, оставим вопрос открытым – lmerry213
Возможно, вы должны упомянуть ассоциации между указанными моделями. Если форум принадлежит пользователю, у пользователя много ролей. Это должно работать 'user_id = User.first.id' ' Forum.joins (user:: role) .where ('users.id =? AND role.name =?', User_id, 'admin') ' –
Второй Например, должен быть 'User.first.has_role? (: admin, Forum)' as ': any' фактически возвращает true, если пользователь имеет роль администратора для любого ресурса, а не только для форума. – max