Rails. Переключать роли одного пользователя на покупателя / продавца, как в Fiverr - PullRequest
0 голосов
/ 21 ноября 2019

Я занимаюсь разработкой веб-приложения на рельсах, для которого требуется, чтобы у одного пользователя было две роли, и он просто переключался между ними одним щелчком мыши, как у Fiverr. Я просто хочу знать лучшие подходы и жемчужины, которые делают это. Я прошел через «rolify» и «cancancan», но не понял, как это сделать. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 21 ноября 2019

Я бы порекомендовал дать «Ролифи» и «Канканкан» еще один шанс. Потому что после определения разрешений в файле Ability вы можете просто проверить, есть ли у текущего пользователя разрешение с чем-то вроде can?(:read, ModelName) в представлении. В других областях вы можете проверить на роль с user.has_role?(:admin) или ж / д вы хотите назвать их.

Если вы просто не можете заставить их работать, вы можете использовать перечисление для создания / проверки роли.

class User < ApplicationRecord
  enum role: %i[admin manager user]
end

И затем вы можете проверить правильность перечисления для просмотра чего-либо, например: user.admin?

Вы также можете довольно легко изменить «роль», создав для этого действие контроллера и просто позвонив user.admin! или любой другой роли enum, которую вы хотели.

...