Я использую декларативные роли, учебник Райана Бейтса по Railscast. Я хотел бы показать роль пользователя, который вошел в систему, в представлении. Есть ли какая-либо переменная, которую я могу использовать для отображения имени роли?
Authlogic с декларативными авторизациями — как показать роль пользователя в представлении?
Ответы (1)
Как говорится в этом руководстве, у пользователя «много» ролей, но вы не вошли в систему как конкретная роль в любой момент времени, вам назначены все они, и все назначенные действительны одновременно. Они связаны с пользовательской моделью:
models/user.rb
has_many :assignments
has_many :roles, :through => :assignments
Таким образом, вы можете показать все роли с помощью чего-то вроде
<%= current_user.roles.join(', ') %>
Предполагая, что current_user является вспомогательным методом, который дает текущий экземпляр модели пользователя, вошедшего в систему.
person
DGM
schedule
23.11.2011
Спасибо DGM за ваш ответ, но как я могу получить информацию о том, какова роль current_user? вот это я до сих пор не понимаю
- person user984621; 23.11.2011
У пользователя не одна роль, а все роли, как определено параметрами has_many :roles, :through =› :assignments
- person DGM; 24.11.2011