#ruby-on-rails #devise #activeadmin #cancan
#ruby-on-rails #разработка #activeadmin #cancan
Вопрос:
Вчера я обнаружил учебное пособие, в котором объясняется, как реализовать однопользовательскую модель на основе ролей с помощью Devise, ActiveAdmin и CanCan: http://renisoft.com/devise-activeadmin-cancan-single-user-model /. Тем не менее, я новичок в rails, и мне было интересно, возможно ли реализовать такое решение с ролями, которые имеют разные атрибуты. Например, мои пользователи будут иметь адрес электронной почты, имя пользователя, фамилию, пароль и будут делиться ими с другими ролями. Но моя роль продавца будет иметь много атрибутов, у моего администратора и моих покупателей будут другие. Возможно ли это реализовать с помощью этих драгоценных камней ruby?
Заранее спасибо за ваш ответ.
Ответ №1:
Пользователи и роли — это две разные вещи. У ролей нет никаких атрибутов, но у пользователей они есть.
Однако проверьте это:
Rolify — отличная библиотека управления ролями для rails: https://github.com/EppO/rolify
Комментарии:
1. В этом уроке ( github.com/EppO/rolify/wiki/Tutorial ), Форум, похоже, имеет свою собственную модель, но не ее атрибуты.
2. «.. роль продавца будет иметь много атрибутов ..» — Я этого не понимаю. Вы хотите управлять ролями на уровне атрибутов?
3. Я хочу, чтобы у пользователей были эти атрибуты: электронная почта, фамилия, имя, вежливость, телефон, пароль. Затем фрилансеры с разными атрибутами: сирена, опыт и т. Д. Сотрудники с другими атрибутами: society, siren_company и т. Д. Я думал использовать devise, ActiveAdmin и CanCan. Фрилансеры и администраторы будут ролями с пользовательскими атрибутами и своими собственными.
4. У меня такое же требование .. не могли бы вы подсказать мне, как это сделать
5. В моем приложении есть 2 роли, кроме администратора, это клиент и рекламодатель. помимо полей модели пользователя у меня есть отдельные поля для модели клиента и модели рекламодателя. итак, как я могу отобразить эти поля на основе ролей при их создании из active admin. пожалуйста, помогите мне с этим.